首页 > 其他 > 详细

大数据BI学习之分析函数、排名函数、位移函数、同比环比

时间:2020-10-02 17:00:10      阅读:38      评论:0      收藏:0      [点我收藏+]

分析函数

作用:分析函数可以在数据中进行分组,然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值。
统计函数:MAX(字段名)、MIN(字段名)、AVG(字段名)、SUM(字段名)、COUNT(字段名)。

--语法结构:
--函数名(参数) OVER ([PARTITION BY 字段名] [ORDER BY 字段名])

--分析函数与分组聚合(统计)函数的不同之处:
-->普通的聚合函数分组是采用 GROUP BY;而分析函数分组是采用 PARTITION BY;
-->分组聚合后的每个分组返回一个统计值;分析函数分组后的每组每行都可以返回一个统计值。
SELECT E.*,
       COUNT(E.DEPTNO) OVER(PARTITION BY E.DEPTNO ORDER BY E.DEPTNO) CNT,
       MAX(E.SAL) OVER(PARTITION BY E.DEPTNO ORDER BY E.DEPTNO) MAX_SAL
  FROM EMP E;
  
SELECT E.DEPTNO,COUNT(E.DEPTNO)
  FROM EMP E
 GROUP BY E.DEPTNO;

--通过职位分组,按照薪资由高到低排序,显示每个员工信息以及对应的最高薪资是多少
SELECT E.*,
       MAX(E.SAL) OVER(PARTITION BY E.JOB ORDER BY E.SAL DESC)MSAL
  FROM EMP E;

 

排名函数

ROW_NUMBER()/RANK()/DENSE_RANK()
三者的唯一区别在于碰到相同数据时的排名策略:
ROW_NUMBER():
返回一个唯一的值,当碰到相同数据时,排名按照记录集合中的记录顺序由1依次递增;例如:1,2,3,4,5,6,7...
RANK():
返回一个唯一的值,当碰到相同数据时,此时所有相同数据的排名是一样的,同时会在最后一条相同记录和下一条不同记录的排名之间空出排名。例如:1,2,3,3,3,6,7...
DENSE_RANK():
返回一个唯一的值,当遇到相同数据时,此时所有相同数据的排名是一样的。例如:1,2,3,3,3,4,5,6,7...

SELECT E.*,
       ROW_NUMBER() OVER(ORDER BY E.SAL) RN,
       RANK() OVER(ORDER BY E.SAL) RANK,
       DENSE_RANK() OVER(ORDER BY E.SAL) D_RANK
  FROM EMP E;

 

位移函数

--上移函数:LEAD(字段名,上移的行数[,空行的默认值])
SELECT E.EMPNO,
       E.SAL,
       LEAD(E.SAL,1) OVER(ORDER BY E.SAL) LEAD_SAL,
       LEAD(E.SAL,2,8888) OVER(ORDER BY E.SAL) LEAD_SAL_1
  FROM EMP E;


SELECT E.EMPNO,
       E.ENAME,
       E.JOB,
       E.SAL,
       LEAD(E.SAL) OVER(PARTITION BY E.JOB ORDER BY E.SAL) LEAD1
FROM EMP E;
  

--下移函数:LAG(字段名,下移的行数[,空行的默认值])
SELECT E.EMPNO,
       E.SAL,
       LAG(E.SAL,1) OVER(ORDER BY E.SAL) LAG_SAL,
       LAG(E.SAL,2,8888) OVER(ORDER BY E.SAL) LAG_SAL_1
  FROM EMP E;

 

同比与环比
同比:指的是相邻的年份,相同的月份或者季度来进行涨幅的比较
同比 = (现阶段 - 上阶段)/ 上阶段;
今年第三季度的销售额为 1000万元,去年第三季度的销售额为 500万元,计算同比
(1000 - 500) / 500 = 1;

环比:指的是相同的年份,连续(相邻)的月份或者季度来进行涨幅的比较
环比 = (现阶段 - 上阶段)/ 上阶段;
今年第三季度的销售额为 1000万元,今年第二季度的销售额为 500万元,计算环比
(1000 - 500) / 500 = 1;

大数据BI学习之分析函数、排名函数、位移函数、同比环比

原文:https://www.cnblogs.com/ZeroITStudy/p/13761186.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!