SQL执行顺序和OVER开窗函数

1,909 阅读1分钟

SQL执行顺序

image.png image.png

FROM mytable
    JOIN another_table
      ON mytable.column = another_table.column
    WHERE constraint_expression
    GROUP BY column
    HAVING constraint_expression
    ORDER BY column ASC/DESC
    LIMIT count OFFSET COUNT;

排序和OVER开窗函数

image.png

应付金额, 
ROW_NUMBER() OVER(ORDER BY 应付金额 DESC) AS ROW_NUMBER,
RANK() OVER(ORDER BY 应付金额 DESC) AS RANK,
DENSE_RANK() OVER(ORDER BY 应付金额 DESC) AS DENSE_RANK,
NTILE(10) OVER(ORDER BY 应付金额 DESC) AS NTILE
FROM 订单
WHERE 应付金额 IS NOT NULL

SELECT 货主地区, 
应付金额, 
ROW_NUMBER() OVER(PARTITION BY 货主地区 ORDER BY 应付金额 DESC) AS ROW_NUMBER_PARTITION
FROM 订单
WHERE 应付金额 IS NOT NULL

SQL日期时间格式化

elect convert(char(10),GetDate(),120) as Date\

* 第3个参数就是用来设置日期类型数据的显示样式的,下面介绍几种样式的参数:\

100   mm dd yyyy

101   mm/dd/yyyy

102   yyyy.mm.dd

103   dd/mm/yyyy

106   dd mm yyyy

108   hh:mi:ss(时间)

111   yyyy/mm/dd

112   yyyymmdd

120   yyyy-mm-dd

无标题.png

image.png

# Hive窗口函数详解—及3套案例练习