SQL的执行优先级

优先级从高到低依次是:

1.from

2.Lateral View (炸裂函数)

3.ON (连接条件)

4.join

5.where

6.group by

7.AGG_FUNC聚合函数

计算 max 等聚合函数。SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。常用的 Aggregate 函数包涵以下几种:

  • AVG:返回平均值
  • COUNT:返回行数
  • FIRST:返回第一个记录的值
  • LAST:返回最后一个记录的值
  • MAX: 返回最大值
  • MIN:返回最小值
  • SUM: 返回总和

8.having

        注意:在标准 SQL 中,HAVING 子句允许引用 SELECT 子句中的列别名。这意味着你可以在 HAVING 子句中直接使用 SELECT 子句中定义的列别名,而不需要重复计算相同的聚合函数。

SELECT
  sku_id,
  sum(sku_num) order_num
from
  order_detail
where
  year (create_date) = year ("2022-01-10") -1
GROUP BY
  sku_id
HAVING
  order_num < 100

        补充:虽然在执行顺序上是先执行HAVING再执行select,但“HAVING 子句允许引用 SELECT 子句中的列别名”导致可以在HAVING里先用’order_num‘,然后在select里第一次定义order_num,减少了一次聚合,优化了计算

9.over()开窗函数

        row_number() 是没有重复值的排序——1、2、3

        dense_rank() 是连续排序,两个第一名后面是第二名——1、1、2

        rank()       是跳跃排序,两个第一名后面就是第三名——1、1、3

10.select

11.distinct

12.order by

13.limit

14.union all(特殊情况:在clickhouse数据库中,union all的优先级高于order by和limit)

        熟知SQL的执行顺序才能明白SQL的逻辑,否则一开始就从select开始解读的话会对SQL逻辑的理解造成很大的困扰

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值