MYSQL 关键字 先后顺序

FROM

WHERE 

SELECT 

DISTINCT  MIN/MAX/COUNT/AVAGE/SUM

INNER/LEFT/RIGHT JOIN

GROUP BY

HAVING

ORDER BY 

LIMIT

From where 在select之前执行,所以在where中使用 select 中的 别名会报错,

此时 where 中的别名还没有创建

在order by中不会出现

HAVING 子句后面可以使用各种运算符来过滤聚合结果。常见的运算符包括:

  1. 比较运算符:

    • =:等于
    • != 或 <>:不等于
    • >:大于
    • <:小于
    • >=:大于等于
    • <=:小于等于
  2. 逻辑运算符:

    • AND:与
    • OR:或
    • NOT:非
  3. 其他运算符:

    • 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 子句中使用原始的聚合函数表达式。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值