gpt4 book ai didi

SQL计数查询

转载 作者:行者123 更新时间:2023-11-29 13:51:42 24 4
gpt4 key购买 nike

抱歉,如果这是一个基本问题。

基本上,我有一个表格如下,下面是一个基本示例

store-ProdCode-result
13p I10x 5
13p I20x 7
13p I30x 8
14a K38z 23
17a K38z 23

我的数据集有将近 100,000 条记录。

我想做的是,为每家商店找到前 10 个 prodCode。

我不确定该怎么做,但我尝试的是:

select s_code as store, prod_code,count (prod_code)
from top10_secondary
where prod_code is not null
group by store,prod_code
order by count(prod_code) desc limit 10

这给了我一些完全不同的东西,我不确定如何实现我的最终结果。

感谢所有帮助。

谢谢

预期的输出应该是:对于每个商店(s_code)显示前 10 个产品代码

所以:

store--prodcode--result
1a abc 5
1a abd 4
2a dgf 1
2a ldk 6

.(距离下一个商店代码还有 10 次)

最佳答案

您可以在 FROM 子句中两次使用该表,一次用于数据,一次用于计算该商店的结果较少的记录数。

SELECT a.s_code, a.prod_code, count(*)
FROM top10_secondary a
LEFT OUTER JOIN top10_secondary b
ON a.s_code = b.s_code
AND b.result < a.result
GROUP BY a.s_code, a.prod_code
HAVING count(*) < 10

虽然使用这种技术,如果第 10 个结果值多次存在,您可能会在每个商店获得超过 10 条记录。因为限制规则只是“只要结果值小于我的10条记录就包含记录”

在您的情况下,“结果”似乎是一个排名,因此它们不会在每个商店重复。

关于SQL计数查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39899761/

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