提取包含特定项/项的所有事务



我想使用SQL从Redshift中提取包含某些项目的事务。我有两个表(一个用于项目,另一个用于具有客户id的事务)

项目表|项目|| ---- |苹果公司| |铅笔| |纸| |

tbody> <<tr>12455
客户id 交易id 商品
1苹果
铅笔
b苹果
3c论文
3c苹果
3e铅笔
f苹果
g td>
g td>
h苹果
h论文
铅笔
j论文

我们可以尝试使用COUNT()作为解析函数来计算每组交易中apple项出现的次数。

WITH cte AS (
SELECT *, COUNT(CASE WHEN Item = 'Apple' THEN 1 END) OVER
(PARTITION BY TransactionId) cnt
FROM yourTable
)
SELECT CustomerId, TransactionId, Item
FROM cte
WHERE cnt > 0
ORDER BY TransactionId, Item;

最新更新