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函数,聚合函数和配上窗口函数使用场景还是很多,这个可以稍微 关注一下。
【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