MySQL窗口函数_聚合函数

MySQL窗口函数_聚合函数,第1张

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

【NTH_VALUE】

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

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

【NTLIE】

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

【聚合函数】

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

End

很多时候,我们查询数据的时候都不会把明细数据查询出来,那样一般意义也不大。更多的时候是根据业务需求,把数据聚合成业务能直接使用的数据。MYSQL中有5个聚合函数,如下面5个,用的最多的还是count和sum,下面分别介绍一下用法。

【COUNT】

在MySQL中,COUNT()函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数,使用方法有以下两种:

求order表中,查询一共有多少条订单数,SQL语句如下↓

【SUM】

在MySQL中,SUM()是一个求总和的函数,返回指定列值的总和。

求order表中所有产品销售数量,SQL语句如下↓

【AVG】

在MySQL中,AVG()函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。

求order表中,2021年所有产品的平均单价,SQL语句如下↓

【MAX/MIN】

在MySQL中,MAX()函数是用来返回指定列中的最大值。

求order表中,查询最大的单价价格,SQL预计如下↓

在MySQL中,MIN()函数是用来返回指定列中的最小值。

求order表中,查询最小的单价价格,SQL预计如下↓

【结合GROUP BY】

正常情况下,聚合函数都是搭配着GROUP BY来使用的。可以是按省份聚合、产品聚合、时间聚合等等。下面演示每个品牌最低单价的聚合,其他几个聚合函数使用方式一样,SQL语句如下↓

还可以用ORDER BY排个序,求每个品牌累计销售价格的SQL语句,从高到低排序↓

End

◆ PowerBI开场白

◆ Python高德地图可视化

◆ Python不规则条形图


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5909040.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-08
下一篇 2023-03-08

发表评论

登录后才能评论

评论列表(0条)

保存