gpt4 book ai didi

最流行组合的 SQL 查询

转载 作者:行者123 更新时间:2023-12-04 23:43:02 24 4
gpt4 key购买 nike

假设我有一个带有采购表的杂货店应用程序:

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;

我能否获得有关如何扩展现有查询以获得所需输出的指针?

最佳答案

select a.itemID, b.itemID, COUNT(*) countForCombination
from grocery_store a
inner join grocery_store b
on a.customer_id = b.customer_id
and a.itemID < b.itemID
group by a.itemID, b.itemID
order by countForCombination desc

假定:

杂货店 = 销售记录
customer_id = 独特的销售
  • 此查询获取所有杂货店记录,对于每笔销售交易,它会按特定顺序 (a.itemid) 创建所有可能的组合 (a.itemid, b.itemid)
  • 保留此特定顺序消除重复项 (apple, orange) 而 (orange, apple) 不是必需的。
  • 生成所有销售的所有组合后,使用简单的分组依据和计数排序来在顶部显示最受欢迎的组合
  • 关于最流行组合的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5007485/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com