数据库学习Day5

SQL聚合函数与分组查询
本文详细介绍了SQL中的聚合函数如COUNT、MAX、MIN、SUM、AVG的使用方法,以及如何结合分组查询(GROUP BY)和HAVING子句进行数据统计和筛选。通过具体示例,读者将学会如何计算记录数、最大值、最小值、总和、平均值,并掌握如何在分组后应用条件过滤。

聚合函数

聚合函数是用来做纵向运算的函数:
COUNT():统计指定列不为NULL的记录行数;
MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
#查询emp表中记录数
SELECT COUNT(*) FROM emp;
#查询emp表中有佣金的人数
SELECT COUNT(comm) FROM emp WHERE comm !=0;
#查询emp表中月薪大于2500的人数
SELECT COUNT(*) FROM emp WHERE sal>2500;
SELECT COUNT(sal) FROM emp WHERE sal>2500;
#统计月薪与佣金之和大于2500元的人数
SELECT COUNT(*) FROM emp WHERE sal+IFNULL(comm,0)>2500;
#查询有佣金的人数,有领导的人数
SELECT COUNT(comm),COUNT(mgr) FROM emp;
#查询所有雇员月薪和
SELECT SUM(sal) FROM emp;
#查询所有雇员月薪和,以及所有雇员佣金和
SELECT SUM(sal),SUM(comm) FROM emp;
#查询所有雇员月薪+佣金和
SELECT SUM(sal)+SUM(comm) FROM emp;
SELECT SUM(sal+IFNULL(comm,0)) FROM emp;
#统计所有员工平均工资
SELECT AVG(sal) FROM emp;

分组查询

HAVING:
having是在分组后对数据进行过滤
where是在分组前对数据进行过滤

having后面可以使用聚合函数(统计函数)
where后面不可以使用聚合函数

#查询每个部门的部门编号和每个部门的工资和
SELECT deptno,SUM(sal) FROM emp GROUP BY deptno;
#查询每个部门的部门编号以及每个部门的人数
SELECT deptno,COUNT(*) FROM emp GROUP BY deptno;
#查询每个部门的部门编号以及每个部门工资大于1500的人数
SELECT deptno,COUNT(*) FROM emp WHERE sal>1500 GROUP BY deptno;
#查询工资总和大于9000的部门编号以及工资和
SELECT deptno,SUM(sal) FROM emp GROUP BY deptno HAVING SUM(sal) >9000;
LIMIT
#查询5行记录,起始行从0开始 开始位置=(当前页数-1)*每页的条数
#第一行
SELECT * FROM emp LIMIT 0,5;
#第二行
SELECT * FROM emp LIMIT 5,10;
#第三行
SELECT * FROM emp LIMIT 10,14;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值