sql 常用统计函数

(1)一列中不同值的数据量统计

1.使用count   

count(channel = 0 OR NULL) AS '注册', 

count(channel = 1 OR NULL) AS '新增',

2.使用sum+if 

sum(IF(channel = 0, 1, 0)) AS '注册',

sum(IF(channel = 1, 1, 0)) AS '新增',

3.使用sum 

sum(channel = 0) AS '注册',

sum(channel = 1) AS '新增',

4.使用count+group by 

channel,count(*) num FROM users  GROUP BY channel;

5.使用sum+case when

SUM(CASE WHEN channel = 0 THEN 1 END) AS '注册',

SUM(CASE WHEN channel = 1 THEN 1 END) AS '新增'

6.使用count+case when

count(CASE WHEN channel = 0 THEN 1 END) AS '注册',

count(CASE WHEN channel = 1 THEN 1 END) AS '新增',

原链接:​​​​​​MySQL统计一列中不同值(字段的不同值)的数量的六种方式及其结果和耗时的比较_xiangwangxiangwang的博客-CSDN博客

### SQL 分组统计常用聚合函数 #### COUNT 函数 `COUNT` 用来计算指定列中非 `NULL` 值的数量或者表中的总行数。当参数为空(`*`)时,它会统计所有的记录,包括含有 `NULL` 的字段;而如果指定了某一列,则只会统计该列不为 `NULL` 的记录[^4]。 ```sql SELECT COUNT(*) AS total_records, COUNT(column_name) AS non_null_values FROM table_name; ``` #### SUM 函数 `SUM` 返回数值型表达式的总和。此函数适用于整数、货币以及浮点数类型的列,并自动忽略任何 `NULL` 值[^1]。 ```sql SELECT SUM(column_name) AS sum_of_column FROM table_name; ``` #### AVG 函数 `AVG` 计算给定列的平均值,同样只考虑非 `NULL` 数据项并返回结果作为浮点数或十进制数取决于输入的数据类型。 ```sql SELECT AVG(DISTINCT column_name) AS average_value -- DISTINCT 可选 FROM table_name; ``` #### MAX 和 MIN 函数 这两个函数分别找出某列的最大值 (`MAX`) 和最小值 (`MIN`) ,它们也会跳过 `NULL` 来寻找有效范围内的极值。 ```sql SELECT MAX(column_name) AS maximum_value, MIN(column_name) AS minimum_value FROM table_name; ``` 为了实现更复杂的查询需求,这些聚合函数经常配合 `GROUP BY` 子句一起使用来完成按特定条件分组后的统计数据汇总工作。例如,在多个部门的情况下获取各部门员工工资总额及人数: ```sql SELECT department_id, SUM(salary) as salary_total, COUNT(employee_id) as employee_count FROM employees GROUP BY department_id; ``` 此外还可以加上 `HAVING` 进一步筛选满足一定条件的结果集,比如仅显示那些平均薪资低于某个阈值的部门信息[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值