【发布时间】:2016-10-06 15:15:33
【问题描述】:
抱歉,这是一个基本问题。
基本上,我有一个如下表,下面是一个基本示例
store-ProdCode-result
13p I10x 5
13p I20x 7
13p I30x 8
14a K38z 23
17a K38z 23
我的数据集有近 100,000 条记录。
我要做的是,为每家商店找到前 10 个产品代码。
我不确定如何执行此操作,但我尝试的是:
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 次直到下一个商店代码)
【问题讨论】:
-
预期输出应该是?
-
我的直觉告诉我建议研究 PIVOT 函数(取决于您使用的 SQL 版本),但如上所述,预期的输出会很有用。
-
@juergend 我已经按照预期结果编辑了我的帖子
-
如果有什么不明白的地方请告诉我
-
请不要在收到答案后破坏您的问题。
标签: sql postgresql greatest-n-per-group