Cod*_*Bob 1 sql sql-server group-by where-clause
我想找到在同一次购买中同时购买了一块水果和一块巧克力的顾客。我的数据如下所示:
ID purchase_date product
22212 2021-06-03 Fruit
111999 2021-06-03 Fruit
111999 2021-06-03 Chocolate
56727 2019-05-03 Bread
30726 2019-05-03 Fruit
30761 2019-05-03 Chocolate
53899 2019-05-03 Fruit
Run Code Online (Sandbox Code Playgroud)
我要这个:
ID purchase_date
111999 2021-06-03
Run Code Online (Sandbox Code Playgroud)
我尝试过带有 where 子句的 select 函数,但它没有返回任何记录。有任何想法吗?
SELECT ID, purchase_date
From dbo.mytable
where product='Fruit' AND product='Chocolate'
Group by ID, purchase_date
Run Code Online (Sandbox Code Playgroud)
编辑-有谁知道我如何找到只在交易中购买水果的人?
如果我理解正确的话,你可以尝试编写聚合条件函数HAVING
SELECT ID,purchase_date
FROM dbo.mytable
GROUP BY ID,purchase_date
HAVING
COUNT(CASE WHEN product='Fruit' THEN 1 END) > 0
AND
COUNT(CASE WHEN product='Chocolate' THEN 1 END) > 0
Run Code Online (Sandbox Code Playgroud)