MySQL窗口函数_聚合函数

还是想快点写完,进入下一个PowerBI专题了,应该后面再写五篇左右,就开始PowerBI系列了,然后会加一些SQL的综合使用案例。窗口函数写三篇就差不多了,后面应该还会加一些综合案例。这一篇主要介绍一下聚合函数和NTH_VALUE、NTILE函数,聚合函数和配上窗口函数使用场景还是很多,这个可以稍微 关注一下。

【NTH_VALUE】

NTH_VALUE(EXP,N),返回窗口中第N个EXP的值,EXP可以是表达式,也可以是列名。继续用之前的数据,取出每个用户的第二次购买的日期,SQL语句如下↓

SELECT
  id,
  user_name,
  date,
  amount,
  NTH_VALUE(date,2) OVER w as 第二个日期
FROM
  orders
  WINDOW w AS (PARTITION BY user_name ORDER BY date ASC)

从结果很明显看出,第一次购买日期是空值,从第二个购买日期开始,都是第二条购买日期记录。

【NTLIE】

NTILE(N),将分区中的有序数据分为n个桶,记录桶号。现在需要根据金额高低,把每个分区分成3组,SQL和结果如下↓

SELECT
  id,
  user_name,
  date,
  amount,
  NTILE(3) OVER w 分桶
FROM
  orders
  WINDOW w AS (PARTITION BY user_name ORDER BY amount DESC)

【聚合函数】

聚合函数参考这一篇,《MySQL聚合函数》。通过聚合函数作为窗口函数运算,可以动态计算在指定的窗口内的各种聚合函数值。计算每个用户,按时间排序,截止每个时间的订单数量、订单金额、平均金额、最大金额、最小金额。SQL语句和结果如下↓


SELECT
  id,
  user_name,
  date,
  amount,
  SUM(amount) OVER w as 累计求和,
  COUNT(amount) OVER w as 累计订单数,
  AVG(amount) OVER w as 累计平均,
  MAX(amount) OVER w as 截止目前最高,
  MIN(amount) OVER w as 截止目前最低
FROM
  orders
  WINDOW w AS (PARTITION BY user_name ORDER BY date asc)

End

图片

◆ PowerBI开场白
◆ Python高德地图可视化
◆ Python不规则条形图

你可能感兴趣的:(MySQL窗口函数_聚合函数)