【发布时间】:2018-05-18 20:31:08
【问题描述】:
假设我有一个带有购买表的杂货店应用程序:
customerId int
itemId int
四个顾客进店:
Bob buys a banana, lemonade, and a cookie
Kevin buys a banana, lemonade, and a donut
Sam buys a banana, orange juice, and a cupcake
Susie buys a banana
我正在尝试编写一个查询,该查询将返回哪些项目组合最受欢迎。在这种情况下,这个查询的结果应该是:
banana and lemonade-2
我已经编写了一个查询,它告诉我多商品购买中的所有商品的列表(我们不包括一件商品的销售 - 它不能形成“组合”)。它返回:
banana - 3
lemonade - 2
cookie - 1
donut - 1
cupcake - 1
orange juice - 1
这里是查询:
SELECT itemId, count( * )
FROM grocery_store
INNER JOIN (
SELECT customerId
FROM grocery_store
GROUP BY customerId
HAVING count( itemId ) > 1
)subQuery ON subQuery.customerId = grocery_store.customerId
GROUP BY itemId;
我能否获得有关如何扩展现有查询以获得所需输出的指针?
【问题讨论】:
-
这是什么 RDBMS?可能有一些专有技巧可以帮助解决这种类型的关系划分问题。
-
您将销售信息存储在表
grocery_store中?我推断customerID被用作临时客户,所以它真的只是sales_id对吗?
标签: sql