SQL查询编写问题(Group by、Distinct):统计广告点击次数分布
解决广告点击次数统计问题
你的原查询问题在于,它只是按广告标识分组,算出了每个广告的总点击次数,但没有进一步统计「相同点击次数的广告有多少个」。另外你写的commercial应该是笔误,实际要分组的是advertising列吧?
要得到你想要的结果,需要分两步统计:
- 先给每个广告计算总点击次数
- 再按点击次数分组,统计对应广告的数量
正确的SQL语句如下:
SELECT click_count, COUNT(*) AS ad_count FROM ( -- 内层子查询:统计每个广告的总点击次数 SELECT advertising, SUM(click) AS click_count FROM Table1 GROUP BY advertising ) AS ad_click_summary GROUP BY click_count ORDER BY click_count;
这段代码执行后,会输出类似这样的结果:
| click_count | ad_count |
|---|---|
| 0 | 3 |
| 1 | 6 |
| 2 | 1 |
完全符合你要的「点击次数 | 对应广告数量」的统计需求。
内容的提问来源于stack exchange,提问作者Eva Shutz
相关产品推荐
相关产品推荐

