gpt4 book ai didi

sql - 在 BigQuery 中从数组中减去项目

转载 作者:行者123 更新时间:2023-12-02 03:09:56 24 4
gpt4 key购买 nike

我有一个查询,当用户向购物车添加商品时,该查询会跟踪购物车中的商品。我已经完成了添加项目部分,但我无法根据给定的操作删除单个项目。这是一个例子:

SELECT
*,
-- Remove item from cart where item in cart
CASE WHEN cart_action = 'remove from cart' THEN (SELECT SPLIT(cart, ',') - SPLIT(cart, ',') WHERE SPLIT(cart, ',') = item)
FROM
(
SELECT
'remove from cart' AS cart_action,
'apple' AS item,
'apple, orange, banana, apple' AS cart
);

如果我的购物车开始时为“苹果、橙子、香蕉、苹果”,那么我希望输出为“橙子、香蕉、苹果”。项目的顺序并不重要。

我希望能够将购物车字符串分解为一个数组,在数组中找到一个匹配的项目,删除该项目,然后返回更新后的购物车。

最佳答案

以下示例适用于 BigQuery 标准 SQL

#standardSQL
WITH `action` AS (
SELECT
'remove from cart' AS cart_action,
'apple' AS item,
'apple, orange, banana, apple' AS cart
)
SELECT
*,
(SELECT STRING_AGG(cart_item)
FROM UNNEST(SPLIT(cart)) cart_item
WHERE TRIM(cart_item) != item
) new_cart
FROM `action`

结果为

Row cart_action         item    cart                            new_cart     
1 remove from cart apple apple, orange, banana, apple orange, banana, apple

关于sql - 在 BigQuery 中从数组中减去项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49200339/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com