当前位置: 首页 > wzjs >正文

做金融平台网站需要多少钱如何建设公司企业安全文化

做金融平台网站需要多少钱,如何建设公司企业安全文化,wordpress中医主题,qq浏览器网页版入口1. 聚合函数和开窗函数的区别 普通聚合函数(如 SUM(), AVG())是纵向聚合:一组数据聚合成一行然后拿到结果; 开窗函数是SQL中的一种横向分析函数,它不改变行数,而是为每一行计算一个基于该行所在分区中其他…

1. 聚合函数和开窗函数的区别

普通聚合函数(如 SUM(), AVG())是纵向聚合:一组数据聚合成一行然后拿到结果;

开窗函数是SQL中的一种横向分析函数,它不改变行数,而是为每一行计算一个基于该行所在分区中其他行的数据结果

例如:“统计每位员工的工资在其所在部门中的排名”。关键词就是“每”,要求每一行数据都要展示,而且是基于其所在部门的排名。

也就是说:

  • 每位员工都要保留在结果中(不能像普通聚合那样合并成一行);
  • 排名是相对于同一部门的其他员工
  • 需要考虑排序(工资越高,排名越靠前);

2. 开窗函数基本组成

函数名(字段参数) OVER ([PARTITION BY 分组字段] # 分区子句,开窗函数将在不同的分区内分别执行[ORDER BY 排序字段] # 排序子句[ROWS BETWEEN start AND end] # 窗口子句,通常用来作为滑动窗口使用
)

对于上面的窗口子句:

  • start的值一般为 1.unbounded preceding,边界是分区中的第一行 2.expr preceding,边界是当前行向上数expr
  • end的值一般为 1. unbounded following,边界是分区中最后一行 2.expr following,边界是当前行向下数expr
  • startend也可以是current row,边界是当前行
  • 默认为ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW

比如:

# 窗口范围是分区中的第一行到当前行
rows unbounded preceding 
# 窗口范围是当前行、当前行的前一行、当前行的后一行,一共三行记录。
rows between 1 preceding and 1 following

边界图如果所示:
在这里插入图片描述

3. 聚合开窗函数

基础数据:
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ef57a5b9147440d4adfd136e736d0208.png

需求:统计每位员工从入职到现在,所在部门中总共发了多少钱工资。

SELECT *, 
sum(salary) over(PARTITION by part,username ORDER BY hire_date rows BETWEEN unbounded preceding and current row) as 'total_salary'
from employees

结果如下:
在这里插入图片描述

4. 排名开窗函数

统计每位员工在自己部门中的工资排名

4.1 RANK

特点:1. 相同值的行有相同排名 2. 跳过排名空行(看下面排名从1跳到了3)

SELECT *, RANK() over(PARTITION by part ORDER BY salary desc) as 'salary_rank'
from employees

在这里插入图片描述

4.2 DENSE_RANK

特点:1. 相同值的行有相同的排名 2. 不跳过排名空位(看下面排名1后面是2)

SELECT *, DENSE_RANK() over(PARTITION by part ORDER BY salary desc) as 'salary_rank'
from employees

在这里插入图片描述

4.3 ROW_NUMBER

特点:按原表数据的顺序,为每一行设置一个递增的数字

SELECT *, ROW_NUMBER() over(PARTITION by part ORDER BY salary desc) as 'salary_rank'
from employees

在这里插入图片描述

5. 取值开窗函数

5.1 FIRST_VALUE

需求:查看每位员工所在部门中工资最高的人的工资是多少(即第一名的工资)

SELECT *, FIRST_VALUE(salary) over(PARTITION by part ORDER BY salary desc ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as 'top_salary'
from employees

在这里插入图片描述

5.2 LAST_VALUE

需求:查看每位员工所在部门中工资低的人的工资是多少(即最后第一名的工资)

SELECT *, LAST_VALUE(salary) over(PARTITION by part ORDER BY salary desc ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as 'last_salary'
from employees

在这里插入图片描述

5.3 NTH_VALUE

需求:查看每位员工所在部门中工资排名第二的人的工资是多少

SELECT *, NTH_VALUE(salary, 2) over(PARTITION by part ORDER BY salary desc ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) as 'nth_salary'
from employees

在这里插入图片描述

5.4 LAG

需求:查看每位员工所在部门中工资与上一个人的差值

SELECT *, salary - IFNULL(LAG(salary, 1) OVER (PARTITION BY part ORDER BY salary ASC), salary) AS diff_salary
FROM employees

在这里插入图片描述

5.5 LEAD

需求:判断每个员工工资是否高于下一位

SELECT *,CASEWHEN salary > LEAD(salary) OVER (PARTITION BY part) THEN '高于下一位'ELSE '不高于'END AS compare_salary
FROM employees

在这里插入图片描述

http://www.dtcms.com/wzjs/829049.html

相关文章:

  • 山东做网站公司有哪些青岛手机网站制作
  • 福州建网站哪家公司好网站查询备案
  • 厦门市建设工程在哪备案网站电商图片制作软件
  • 厦门450元网站建设公司六安网站设计公司
  • 济源市建设工程管理处网站wordpress 360字体大小
  • 网站不允许上传文件kingcms 暂未创建网站首页
  • 网站代码模板编写滦平住房和城乡建设厅网站
  • 哈巴狗模式网站开发长沙网站建设kaodezhu
  • 广告网站模板科技改变生活
  • 企业电子商务网站建设的最终目的vi设计的目的和意义
  • seo网站推广如何做前端网站模板
  • 教育网站解决方案网页版梦幻西游飞升攻略
  • 可以去非菲律宾做游戏网站吗电商设计师招聘
  • 方正园林建设监理中心网站网络营销做得好的产品
  • 建网站平台安全性网站空间大小怎么看
  • 如何登录国外购物网站网站大幅广告
  • wordpress博客 登录营销导向的企业网站优化
  • cms进行网站开发个人博客wordpress主题
  • 网站策划的重要性大连网站建设蛇皮果
  • 在线看网站建设观光农业规划设计
  • 做cms网站成成品网站源码有限公司
  • 百度推广运营这个工作好做吗廊坊网站的优化
  • 用Off做网站湖南住房与城乡建设厅网站
  • 怎么在网上打广告seo体系网站的建设及优化
  • 网站推广方法100种青海省建设厅职业注册官方网站
  • 微网站 微官网的区别wordpress 08
  • 沈阳和平三好街做网站法国企业网站建设
  • 酷家乐在线3d云设计平台百度关键词如何优化
  • 免费下载网站建设方案pptdjango商城网站开发的功能
  • 网站开发应用开发前海艾爻网站 建设