MySQL| MySQL语句的执行顺序

SQL语句的执行顺序:

(特别巧的是:关键字的书写顺序就是SQL子句的执行顺序)

子 句说 明是否必须使用
SELECT要返回的列或表达式
FROM从中检索数据的表仅在从表选择数据时使用
WHERE行级过滤
GROUP BY分组说明仅在按组计算聚集时使用
HAVING组级过滤
ORDER BY输出排序顺序
LIMIT要检索的行数

EG:

SELECT vend_id,COUNT(*) AS num_prods
FROM products 
WHERE prod_price >2
GROUP BY vend_id
HAVING COUNT(*) >=2
ORDER BY num_prods DESC
LIMIT 0,3;

说明:
having子句后的COUNT(*)可以用别名num_prods代替,这条SQL语句的执行顺序是,首先根据where条件将所有的结果过滤出prod_price >2的记录,将过滤出来的记录按照vend_id将结果进行分组,将分组后的聚集结果按照条件COUNT(*) >=2每组数量>=2的记录过滤出来,然后按照列num_prods的降序排列,将排列后的结果从第一条开始取,取出不超过3条的记录.

返回结果:

+---------+-----------+
| vend_id | num_prods |
+---------+-----------+
|    1003 |         7 |
|    1001 |         3 |
|    1002 |         2 |
+---------+-----------+
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值