如何在同一张表中合并两个COUNT统计结果?
问题描述
原表结构及数据
| 国家(country) | 水果(fruit) | 尺寸(size) |
|---|---|---|
| 日本(Japan) | 苹果(Apple) | 大(Big) |
| 日本(Japan) | 苹果(Apple) | 小(Small) |
| 日本(Japan) | 橙子(Orange) | 大(Big) |
| 新加坡(Singapore) | 香蕉(Banana) | 小(Small) |
期望输出结果
| 国家(country) | 种类(type) | 总数(total) |
|---|---|---|
| 日本(Japan) | 2 | 3 |
| 新加坡(Singapore) | 1 | 1 |
你不需要分开执行两个查询再合并结果,直接把两个统计逻辑放到同一条SQL语句里就行——因为两者都是按country分组,完全可以一次性计算:
SELECT country, COUNT(DISTINCT fruit) AS type, COUNT(fruit) AS total FROM Table GROUP BY country;
简单说明:
COUNT(DISTINCT fruit)用来统计每个国家下不重复的水果种类数,对应结果里的type字段COUNT(fruit)统计每个国家下的水果记录总条数,对应total字段- 按
country分组后,就能直接得到你想要的合并结果表
内容的提问来源于stack exchange,提问作者Blue Sulley
相关产品推荐
相关产品推荐

