Mysql案例5:取得平均薪资最高的部门的部门名称

一、要求:查询平均薪水最高部门的部门编号

二、背景:当前数据库有employee表和department表,数据分别如下:

  employee表:

 department表:

三、难点:

1、需要考虑最高平均薪资可能在多个部门同时出现,查询出来的结果需要涵盖所有最高平均薪资的部门id

2、部门名称和员工工资不在一个表,所以需要用连接进行查询获取部门名称

四、SQL语句

SELECT
            e.departmentid,d.name,AVG(e.salary) avgsal
FROM
            employee e
INNER JOIN
            department d
ON
            e.departmentid =d.id

GROUP BY
            e.departmentid,d.`name`
HAVING
            avgsal = (
                                SELECT
                                            MAX(t.avgsal) maxsal
                                FROM (
                                            SELECT departmentid,AVG(salary) avgsal
                                            FROM employee
                                            GROUP BY departmentid) t
                                )

结果图:

原文地址:https://www.cnblogs.com/wodexk/p/10703856.html

时间: 2024-11-11 04:33:12

Mysql案例5:取得平均薪资最高的部门的部门名称的相关文章

Mysql案例6_求平均薪资的等级最低的部门的部门名称

背景:当前数据库的department表.salgrade表.employee表,数据分别如下: SQL语句: SELECT t.*,s.grade FROM ( SELECT e.departmentid, d.`name`,AVG(salary) avgsal FROM employee e INNER JOIN department d on e.departmentid=d.id GROUP BY e.departmentid,d.`name` ) t INNER JOIN salgra

Mysql案例4:要求查询平均薪水最高部门的部门编号

一.要求:查询平均薪水最高部门的部门编号 二.背景:emplyee表数据如下 三.难点:需要考虑最高平均薪资可能在多个部门同时出现,查询出来的结果需要涵盖所有最高平均薪资的部门id 四.思路: 第一步:先求出每个部门的平均薪资,作为临时表 t SELECT departmentid,AVG(salary) avgsal FROM employee GROUP BY departmentid 第二步:从第一步得出的每个部门平均薪资里求出最高值 SELECT MAX(t.avgsal) maxsal

部门中薪资超过部门平均薪资的员工姓名及薪资

部门中薪资超过部门平均薪资的员工姓名及薪资 # 题表 # 建表 create table emp( id int not null unique auto_increment, name varchar(20) not null, sex enum('male','female') not null default 'male', #大部分是男的 age int(3) unsigned not null default 28, hire_date date not null, post varc

【MySQL案例】HA: GTID_MODE配置不一致

1.1.1. HA: GTID_MODE配置不一致 [环境描述] msyql5.6.14 [报错信息] 初始状态Master和Slave都开启了enforce-gtid-consistency和gtid-mode,然后在Master上把它俩都修改成了off关闭状态,这时,Slave发生报错: Last_IO_Error: The slave IO thread stopsbecause the master has @@GLOBAL.GTID_MODE OFF and this server [

【MySQL案例】error.log的Warning:If a crash happens thisconfiguration does not guarantee that the relay lo

1.1.1. If a crash happens thisconfiguration does not guarantee that the relay log info will be consistent [环境描述] msyql5.6.14 [报错信息] mysql的slave启动时,error.log中出现Warning警告: [Warning] Slave SQL: If a crash happensthis configuration does not guarantee tha

【MySQL案例】ERROR 1786 (HY000)

1.1.1. ERROR 1786 (HY000) [环境描述] msyql5.6.14 [报错信息] 执行create table ... select的时候遇到报错: db1 [test] [23:01:58]> create tablelgmnr_bak select * from lgmnr; ERROR 1786 (HY000): CREATE TABLE ... SELECTis forbidden when @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1

【MySQL案例】ERROR 1665 (HY000)

1.1.1. ERROR 1665 (HY000) [环境描述] msyql5.6.14 [报错信息] 执行SQL语句的时候报错: ERROR 1665 (HY000): Cannot executestatement: impossible to write to binary log since BINLOG_FORMAT = STATEMENTand at least one table uses a storage engine limited to row-based logging.

【MySQL案例】mysql-libs-5.1.73-3.el6_5.x86_64 conflicts with file from package Percona-Server-server

如果遇到mysql-libs-5.1.73-3.el6_5.x86_64 conflicts with file from package Percona-Server-server报错,有两种情况导致这个问题: 1)卸载操作系统预装的mysql-libs包 rpm -qa | grep -i libs | grep -i mysql rpm -e mysql-libs 2)安装Percona-Server-shared-compat-5.5.33-rel31.1.566.rhel6.x86_6

【mysql案例】mysql5.6.14配置my.cnf多实例,mysql_install_db初始化不读取my.cnf配置文件

1.1.1. mysql5.6.14多实例my.cnf时,初始化不读取my.cnf配置文件 [环境描述] 在多实例配置的/etc/my.cnf环境中,执行mysql_install_db后,启动Mysql报错. [操作步骤] /etc/my.cnf配置文件: [mysqld3307] innodb_data_file_path =ibdata1:1G:autoextend 初始化数据库: [[email protected] home]# mysql_install_db--datadir=/h