文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给如下两个表,写一个查询语句,求出在每一个工资发放日,每个部门的平均工资与公司的平均工资的比较结果 (高 / 低 / 相同)。

表: salary

| id | employee_id | amount | pay_date   |
|----|-------------|--------|------------|
| 1  | 1           | 9000   | 2017-03-31 |
| 2  | 2           | 6000   | 2017-03-31 |
| 3  | 3           | 10000  | 2017-03-31 |
| 4  | 1           | 7000   | 2017-02-28 |
| 5  | 2           | 6000   | 2017-02-28 |
| 6  | 3           | 8000   | 2017-02-28 |

employee_id 字段是表 employee 中 employee_id 字段的外键。

| employee_id | department_id |
|-------------|---------------|
| 1           | 1             |
| 2           | 2             |
| 3           | 2             |

对于如上样例数据,结果为:

| pay_month | department_id | comparison  |
|-----------|---------------|-------------|
| 2017-03   | 1             | higher      |
| 2017-03   | 2             | lower       |
| 2017-02   | 1             | same        |
| 2017-02   | 2             | same        |

解释

在三月,公司的平均工资是 (9000+6000+10000)/3 = 8333.33…

由于部门 ‘1’ 里只有一个 employee_id 为 ‘1’ 的员工,
所以部门 ‘1’ 的平均工资就是此人的工资 9000 。
因为 9000 > 8333.33 ,所以比较结果是 ‘higher’。

第二个部门的平均工资为 employee_id 为 ‘2’ 和 ‘3’ 两个人的平均工资,为 (6000+10000)/2=8000 。
因为 8000 < 8333.33 ,所以比较结果是 ‘lower’ 。

在二月用同样的公式求平均工资并比较,比较结果为 ‘same’ ,
因为部门 ‘1’ 和部门 ‘2’ 的平均工资与公司的平均工资相同,都是 7000 。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/average-salary-departments-vs-company
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

# Write your MySQL query statement belowselect distinct pay_month, department_id, case when dep_avg > total_avg then 'higher'when dep_avg = total_avg then 'same'else 'lower' end as comparison
from
(            # 平均部门工资, 公司平均工资select department_id, avg(amount) over(partition by department_id, date_format(pay_date, "%Y-%m")) dep_avg,date_format(pay_date, "%Y-%m") pay_month,avg(amount) over(partition by date_format(pay_date, "%Y-%m")) total_avgfrom salary s left join employeeusing(employee_id)
) t

我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode MySQL 615. 平均工资:部门与公司比较(over窗口函数)相关推荐

  1. 【LeetCode-SQL】615. 平均工资:部门与公司比较

    一.题目 给如下两个表,写一个查询语句,求出在每一个工资发放日,每个部门的平均工资与公司的平均工资的比较结果 (高 / 低 / 相同). 表: salary | id | employee_id | ...

  2. mysql最高平均工资_mysql查询出平均工资最高的部门编号

    mysql查询出平均工资最高的部门编号 一.部门表 DROP TABLE IF EXISTS `depts`; CREATE TABLE `depts` ( `id` int(11) NOT NULL ...

  3. mysql查询平均工资最低的部门_查询出部门名称、部门的员工数、部门的平均工资、部门的最低收入雇员姓名和最高收入雇员的姓名...

    如题: 查询出部门名称.部门的员工数.部门的平均工资.部门的最低收入雇员姓名和最高收入雇员的姓名 这是oracle的默认Scott用户以下的emp 和 dept 表间的一道思考题. 雇员表(emp) ...

  4. mysql里平均工资最高怎么做_SQL面试题3:获取平均工资最高的三个部门

    SQL面试题3:获取平均工资最高的三个部门 1创建表格并输入数据 create table company(id int, name varchar2(10), salary number, dept ...

  5. 五个同事想计算他们的平均工资,但公司不让吐露薪资,如何实现?

    源 | Xpecya@知乎 大家好我是卖萌酱.昨天在知乎上刷到一个很有意思的问题:"五个同事决定计算他们的平均工资,在大家互相不告诉薪水的情况下,如何才能做到这一点?". 确实互联 ...

  6. mysql里平均工资最高怎么做_SQL数据库 计算出每个部门的平均工资 最高工资和最低工资 语法怎么写?...

    展开全部 select avg(salary), max(salary), min(salary). from table. group by department. "Oh, who wa ...

  7. LeetCode MySQL 1179. 重新格式化部门表

    文章目录 1. 题目 2. 解题 1. 题目 部门表 Department: +---------------+---------+ | Column Name | Type | +--------- ...

  8. 统计公司中所有员工的平均工资(该公司人数不多于五个)

    一.数组收集数据 二.通过循环对数据进行累加 三.求平均值 四.调试程序 一. 首先我们需要用数组求平均值.如下所示: while(a[N]!=-1){scanf("%f",&am ...

  9. LeetCode MySQL解题目录

    已完成的 LeetCode MySQL 数据库题目.点击查看我的 LeetCode 算法解题目录. 已解决 123/123 - 简单 54 中等 51 困难 18 前置入门学习 MySQL 基本查询. ...

最新文章

  1. AAAI 2020 | 自动化所:基于对抗视觉特征残差的零样本学习方法
  2. css transform旋转属性
  3. SQL Server 2008中获取数据库所有表及其字段名称、类型、长度的SQL
  4. python下载网页歌词_使用Python下载歌词并嵌入歌曲文件中的实现代码
  5. 算法提高课-图论-负环-AcWing 361. 观光奶牛:spfa判正环、负环、01分数规划、二分
  6. C++ 读入优化与输出优化 模板
  7. Hibernate事实:如何“断言” SQL语句计数
  8. 基于Maven的spring_security入门
  9. 安装SQL2012数据库步骤
  10. 去掉Tomcat的管理页面
  11. [渝粤教育] 西南科技大学 材料力学 在线考试复习资料
  12. 3D游戏中的数学基础
  13. allegro笔记:元件与走线一起移动/板框原点origin设置/放置定位孔封装等到特定坐标
  14. cisco ASA 防火墙安全算法原理和基本配置(转自http://xiaoxiao1001.blog.51cto.com/7640562/1300161)
  15. Android UID相关知识
  16. HTML5滑动(swipe)事件,移动端触摸(touch)事件
  17. php 生成300dpi图片,canvas生成图片只有96dpi,打印需要300dpi, 请问如何修改这个信息....
  18. OPCUA 复杂服务器对应的Python客户端(回调与方法)
  19. Framer:开源原型设计工具,巨头们的心头好
  20. 阿飞的LeetCode-NAVIGATOR

热门文章

  1. Java笔记07-List、Set、数据结构、Collections
  2. 【数字图像处理】傅里叶变换在图像处理中的应用
  3. php注入教程,php注入点构造代码实例详解
  4. uboot中关于LCD的代码分析
  5. 程序员修炼之道--从小工到专家(一)
  6. html:web前端开发规范
  7. Linux Centos安装步骤
  8. [状压dp]洛谷 P2157 学校食堂
  9. 【CentOS 6.5】QtCreator启动时关于dbus-1的错误解决方法
  10. Web开发中需要注意的地方