快捷搜索:  汽车  科技

mysql查询多个聚合函数条件(MySQL窗口函数聚合函数)

mysql查询多个聚合函数条件(MySQL窗口函数聚合函数)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聚合函数参考这一篇,《MySQL聚合函数》。通过聚合函数作为窗口函数运算,可以动态计算在指定的窗口内的各种聚合函数值。计算每个用户,按时间排序,截止每个时间的订单数量、订单金额、平均金额、最大金额、最小金额。SQL语句和结果如下↓【NTLIE】NTILE

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

mysql查询多个聚合函数条件(MySQL窗口函数聚合函数)(1)

mysql查询多个聚合函数条件(MySQL窗口函数聚合函数)(2)

【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)

mysql查询多个聚合函数条件(MySQL窗口函数聚合函数)(3)

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

【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查询多个聚合函数条件(MySQL窗口函数聚合函数)(4)

【聚合函数】

聚合函数参考这一篇,《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)

mysql查询多个聚合函数条件(MySQL窗口函数聚合函数)(5)

End

mysql查询多个聚合函数条件(MySQL窗口函数聚合函数)(6)

猜您喜欢: