SELECT数据查询4——聚合函数详解

employees 员工表
salary 工资列
commission_pct 奖金率列
employee_id 员工名列

employees
| salary |commission_pct | employee_id |
| 工资1 | 奖金率1 | 员工1 |
| 工资2 | 奖金率2 | 员工2 |

#1、简单函数的使用

SELECT SUM(salary) FROM employees;
SELECT AVG(salary) FROM employees;
SELECT MIN(salary) FROM employees;
SELECT MAX(salary) FROM employees;
SELECT COUNT(salary) FROM employees;

SELECT SUM(salary),
ROUND(AVG(salary),2) 平均,
MAX(salary) 最大,
MIN(salary) 最低,
COUNT(salary) 个数
FROM employees;

#总结
/*

1、上述几个聚合函数支持哪些类型?
sum(),avg()一般处理数值类型
min(),max(),count()可以处理任何类型:数值、日期、字符···

2、是否忽略null值?
以上几个聚合函数都忽略null值

3、可以和distinct搭配

4、count函数的注意点

5、和聚合函数一同查询的字段是group by后的字段
*/

下面是由各个总结对应的例子

#2

SELECT commission_pct FROM employees;
SELECT COUNT(commission_pct) FROM employees;

SELECT MAX(commission_pct),MIN(commission_pct)
FROM employees;

SELECT SUM(commission_pct),
AVG(commission_pct),
SUM(commission_pct)/35,
SUM(commission_pct)/107
FROM employees;

#3

SELECT SUM(DISTINCT salary),SUM(salary) FROM employees;
SELECT COUNT(DISTINCT salary),COUNT(salary) FROM employees;

#4、count函数的具体介绍

SELECT COUNT(salary) FROM employees;
#该语句查询了salary字段的非空行数


SELECT COUNT(*) FROM employees;
#该语句放回表中所有行的数目,包括null行
#就是说每一行中,只要有一个值不是null就在统计的行数上加一
#从第一行加到最后一行


SELECT COUNT(1) FROM employees;
#在表旁边另起一列,都是1,然后统计非空行数
#所以1不固定,可以别的:2、3、'别的'...都行

/效率:
MYISAM存储引擎下,COUNT(
)的效率高
INNODB存储引擎下,COUNT(*)和COUNT(1)的效率差不多,比COUNT(字段)要搞一些

*/

#5、和聚合函数一起查询的字段有限制

SELECT AVG(salary),employee_id FROM employees;  
#就只剩一行数据了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的clz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值