还是想快点写完,进入下一个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不规则条形图