![b39e3cd8def4e97790547594d323fb08.png](https://i-blog.csdnimg.cn/blog_migrate/a8a7bbca844ccc09228af70a43f41156.png)
简介
很多时候,我们都使用group by 进行分组,count(*)进行统计,两者结合可以进行聚合统计。
假设我们有这样一张煤矿数据库表
table name: coalmine
columns: id(煤矿ID, bigint), prod_status(生产状态,varchar), prod_capacity(产能,decimal)
需求:统计各生产状态的煤矿数量
学过SQL的人一眼就看出来,这是一个非常基础的问题。我们只需要按照prod_status进行分组进行聚合统计即可。大致可以写如下的sql:
select prod_status as name, count(*) as num from coalmine group by name;
可以得到如下的输出:
name | num
停产 377
停建 360
关闭 31
准备 1
在建 89
正在复产 3
生产 463
生产/在建 15
生产/试运转 12
试运转 1
非常完美,我们得到了我们想要的数据。
但是现在有了新的需求:统