文章目录
高级查询
本节所用数据库同前课,git下载连接
分组函数
SUM() 求和
AVG() 求均值
MAX() 最大值
MIN() 最小值
COUNT() 计数
GROUP BY () 按字段分组
分组函数是不计算空值的
where 是组前条件,having是组后条件.具体用法如下:
-- 查询每个部门的最大工资,并找出2900以上的部门且按照名称分组
SELECT MAX(sal),dname
FROM emp
JOIN dept
ON emp.deptno = dept.deptno
WHERE MAX(sal) > 2900
GROUP BY dname;
-- 上面这种写法是非法的,原因是WHERE是组前函数,不能在GROUP BY()函数内调用,正确的操作是:
SELECT MAX(sal),dname
FROM emp
JOIN dept
ON emp.deptno = dept.deptno
GROUP BY dname
HAVING MAX(sal) > 2900;
子查询
单行子查询
什么是子查询,举个例子一看便知:
-- 查询与编号是7788的工作一样的人的名字 select ename fro