簡體   English   中英

提取包含特定項目的所有交易

[英]Extract all transaction that contains specific item/items

我想使用 SQL 從 Redshift 中提取包含某些項目的交易。 我有兩張表(一張用於物品,一張用於與客戶 ID 進行交易)

項目表 | 項目 | | ---- | |蘋果| |鉛筆| |紙|

客戶ID 交易編號 物品
1個 一種 蘋果
1個 一種 鉛筆
2個 b 蘋果
3個 c
3個 c 蘋果
3個 電子 鉛筆
4個 F 蘋果
5個 G 蘋果
5個 G
H 蘋果
H
一世 鉛筆
j

如何提取所有包含Apple的交易?

我期待得到這個結果

客戶ID 交易編號 物品
1個 一種 蘋果
1個 一種 鉛筆
2個 b 蘋果
3個 c
3個 c 蘋果
4個 F 蘋果
5個 G 蘋果
5個 G
H 蘋果
H

我們可以嘗試在這里使用COUNT()作為解析 function 來統計每組交易中蘋果商品出現的次數。

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM