【发布时间】:2020-11-25 05:23:56
【问题描述】:
我有一个简单的表来存储客户的交易。该表包含作为其主键的交易 ID、客户编号、交易日期和商品 ID。
我需要知道任何客户在某一天购买了超过 1 个不同的商品 ID。
所以在下表中,我希望只为客户 BBB 取回所有记录,因为他们在同一天有 2 个不同的项目 ID。所有 AAA 的 itemid 相同,而 CCC 则跨越 2 个不同的日子。
+---------+------------+------------+--------+ |转号 |客户 ID |日期 |项目 ID | +---------+------------+------------+--------+ | 1 | AAA | 2020 年 11 月 24 日 | 11 | | 2 | AAA | 2020 年 11 月 24 日 | 11 | | 3 | AAA | 2020 年 11 月 24 日 | 11 | | 4 |血脑屏障 | 2020 年 11 月 23 日 | 12 | | 5 |血脑屏障 | 2020 年 11 月 23 日 | 11 | | 6 | CCC | 2020 年 11 月 23 日 | 11 | | 7 | CCC | 2020 年 11 月 24 日 | 11 | +---------+------------+------------+--------+我已经尝试过了,但它似乎返回了所有行...
select customerid, date, itemid
from transactions
group by customerid, date, itemid
having count(itemid) > 1
【问题讨论】:
-
从分组中删除项目。
-
我假设您希望 itemid 成为结果的一部分,对吧?
标签: sql sql-server