赞
踩
FROM
WHERE
DISTINCT MIN/MAX/COUNT/AVAGE/SUM
INNER/LEFT/RIGHT JOIN
GROUP BY
HAVING
ORDER BY
From where 在select之前执行,所以在where中使用 select 中的 别名会报错,
此时 where 中的别名还没有创建
在order by中不会出现
HAVING
子句后面可以使用各种运算符来过滤聚合结果。常见的运算符包括:
比较运算符:
=
:等于!=
或<>
:不等于>
:大于<
:小于>=
:大于等于<=
:小于等于逻辑运算符:
AND
:与OR
:或NOT
:非其他运算符:
BETWEEN
:在某个范围内IN
:在某个集合内LIKE
:匹配某个模式例如,你可以使用以下方式来过滤聚合结果:
select d.department_id, count(e.employee_id) num
from employees e
RIGHT JOIN departments d ON e.department_id = d.department_id
GROUP BY
department_id
HAVING
-- count(e.employee_id) = 0; yes
-- count(num) = 0; no
在 SQL 中,HAVING
子句不能直接使用 SELECT
子句中的别名来进行聚合函数的计算。你需要直接在 HAVING
子句中使用原始的聚合函数表达式。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。