请查询部门平均工资和公司平均工资的关系_哪个省的平均工资最高

请查询部门平均工资和公司平均工资的关系_哪个省的平均工资最高力扣(LeetCode)615. 平均工资:部门与公司比较 困难难度SQL题目

平均工资:部门与公司比较

一. 题目:

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

工资表: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
employee_id department_id
1 1
2 2
3 2

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

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

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=800。因为 8000 < 8333.33 ,所以比较结果‘lower’。

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

二. 答案

SELECT t1.发工资月份, t1.部门,
CASE 
	WHEN t1.部门平均工资 > t2.公司平均工资 THEN "higher"
	WHEN t1.部门平均工资 < t2.公司平均工资 THEN "lower"
	ELSE "same"
END AS "比较结果",
t1.部门平均工资,
t2.公司平均工资
FROM
(
-- 拿到每个月份部门的平均工资
SELECT employee.department_id AS "部门", SUM(salary.amount) / COUNT(salary.employee_id) "部门平均工资", DATE_FORMAT(salary.pay_date, "%Y-%m") AS "发工资月份" FROM salary 

RIGHT JOIN employee ON salary.employee_id = employee.employee_id

GROUP BY 发工资月份, employee.department_id
) t1
INNER JOIN
(
-- 拿到每个月份公司的平均工资
SELECT DATE_FORMAT(salary.pay_date, "%Y-%m") AS "发工资月份", SUM(salary.amount) / COUNT(salary.employee_id) AS "公司平均工资"
FROM salary
GROUP BY 发工资月份
) t2 
ON t1.发工资月份 = t2.发工资月份

原文地址:https://www.cnblogs.com/xiqingbo/archive/2022/09/28/arithmetic-02.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/4713.html

(0)
上一篇 2023-06-08 09:30
下一篇 2023-06-08 11:30

相关推荐

  • clickhouse是什么类型数据库_clickhouse表引擎

    clickhouse是什么类型数据库_clickhouse表引擎ClickHouse属于分析型数据库,ClickHouse提供了许多数据类型,它们可以划分为基础类型、复合类型和特殊类型。其中基础类型使ClickHouse具备了描述数据的基本能力,而另外两种类型则使

    2023-06-03
    99
  • 优化python(优化电池充电什么意思)

    优化python(优化电池充电什么意思)python逐渐走入人们的视线,成为热门编程语言,随之而来,加入python培训的准程序员大军也成为社会热点。

    2023-11-25
    102
  • 各大数据库对比_大数据分析数据库

    各大数据库对比_大数据分析数据库众所周知我们现在处于大数据时代,维护数据自然使用数据库 今天来对比各大数据库之间的一些优缺点 参与今天对比的数据分别有 MySQL、Redis、SQL Server、Oracle、MongoDB 对…

    2023-03-13
    110
  • Windos framework .net 3.5规则失败

    Windos framework .net 3.5规则失败1. 安装的时候有一个.net警告,这里给后边造成了一个隐患,实际上是wondows少了一个framework .net的插件,跟SQLserver安装本身没关系,一开始忽略了,后边就报错了。 2.点

    2022-12-29
    128
  • 电脑系统重装后没有声音怎么办[亲测有效]

    电脑系统重装后没有声音怎么办[亲测有效]电脑系统重装后没有声音怎么办,下面与大家分享下系统重装后没有声音怎么解决的教程。 1第一步鼠标右键单击此电脑,选择管理进入页面,单击设备管理器,展开声音、视频和游戏控制器,查看设备是否有问号,如果有…

    2023-04-10
    109
  • 深度系统安装mysql

    深度系统安装mysql# 安装 Mysql 8.0.19下载 MySQL Community Server 8.0.19 【Compressed TAR Archive】(mysql-8.0.19-linux-glibc…

    2023-04-05
    102
  • Python Whence: 让你快速定位Python模块的源码位置

    Python Whence: 让你快速定位Python模块的源码位置Python自带的模块和第三方模块,都可以被导入到我们的程序中使用。但是,当我们需要查找某个模块的源代码时,我们往往会在不同的目录下查找,甚至于在互联网上进行搜索。Python Whence是一个非常实用的工具,可以帮助我们快速地确定Python模块的实际位置。

    2024-04-02
    18
  • Python基础3:无痛掌握Python编程语言的高级特性

    Python基础3:无痛掌握Python编程语言的高级特性Python中支持面向对象编程,通过使用类和对象的概念可以更好地管理和维护复杂的代码。在Python中,我们可以通过定义类来创建新的对象。类可以包含属性和方法,属性是类的属性或对象的属性,方法是类的方法或对象的方法。

    2024-03-22
    29

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注