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不规则条形图

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 窗口函数在hive中用的比较多,很多数据库很早也都支持了,MySQL从8.0开始支持窗口函数。 窗口的概念非常重要...
    Lin王发林阅读 1,861评论 0 0
  • 接上一篇,这一篇主要介绍三类窗口函数,分布函数、前后函数和头尾函数。 【分布函数】 PERCENT_RANK基于R...
    Lin王发林阅读 588评论 0 0
  • 很多时候,我们查询数据的时候都不会把明细数据查询出来,那样一般意义也不大。更多的时候是根据业务需求,把数据聚合成业...
    Lin王发林阅读 1,274评论 0 0
  • MYSQL五大类函数,前面已经介绍了聚合函数、字符串函数和数值型函数,还有时间日期函数和控制流函数,这篇介绍一下日...
    Lin王发林阅读 405评论 0 0
  • MYSQL五大类函数,前面已经介绍了聚合函数和字符串函数,还有数值型函数、时间日期函数和控制流函数,这篇介绍一下数...
    Lin王发林阅读 235评论 0 0