SQL 学习整理

SQL复杂查询(案例一)

PHPer 2020-03-27 1373 0 0
https://blog.csdn.net/dingchenxixi/article/details/732235721.列出至少有一个员工的所有部门编号、名称,并统计出这些部门的平均工资、最...

https://blog.csdn.net/dingchenxixi/article/details/73223572

1.列出至少有一个员工的所有部门编号、名称,并统计出这些部门的平均工资、最低工资、最高工资。

确定所需要的数据表
emp表:员工的部门编号,平均工资,最低工资,最高工资
dept表:部门名称

确定已知的关联字段
emp.deptno=dept.deptno
1.1 先得到员工数大于1的部门

SELECT deptno,COUNT(empno) FROM emp GROUP BY deptno HAVING COUNT(empno)>1;  
  • 1
97ae32c321_normal.png

1.2 找到部门名称

SELECT d.dname,COUNT(e.empno) FROM emp e ,dept d 
     WHERE e.deptno=d.deptno GROUP BY d.deptno,d.dname     HAVING COUNT(e.empno)>1;
  • 1
  • 2
50daf5547d_normal.png

1.3 统计各种信息

SQL分组:http://blog.csdn.net/dingchenxixi/article/details/70193634

select子句之后,只能出现分组的字段和统计函数,其它的字段不能出现

由于AVG(),MAX(),MIN()为统计函数,可以直接使用

SELECT d.deptno,d.dname,COUNT(e.empno),AVG(sal),MIN(sal),MAX(sal) 
   FROM emp e ,dept d  
   WHERE e.deptno=d.deptno 
   GROUP BY d.deptno,d.dname HAVING COUNT(e.empno)>1;
  • 1
  • 2
  • 3
  • 4
81499778df_normal.png

2.列出薪金比“***ITH”或“ALLEN”多的所有员工的编号、姓名、部门名称、其领导姓名。
确定所需要的数据表
emp表:列出“***ITH”或“ALLEN”的薪金
emp表:员工的编号,姓名
dept表:部门名称

确定已知的关联字段
emp.deptno=dept.deptno;
emp1.mgr = emp2.empno (自关联查询)

2.1 先查询出“***ITH”或“ALLEN”的薪金

SELECT sal FROM emp WHERE ename='***ITH' OR ename='ALLEN'
  • 1

或者

SELECT sal FROM emp WHERE ename IN('***ITH','ALLEN');
  • 1
aed25c6697_normal.png

2.2 子查询,查询比“***ITH”或“ALLEN”薪金多的员工编号,姓名,部门名称...

立即注册

更新于:2020-03-27 00:02:59
    您需要登录后才可以评论。 立即注册
    相关内容

    mysql 中文全文索引模糊查询和like模糊查询的速度对比

    Mysql问题整理

    Yii2数据库报错-SQLSTATE[HY093]: Invalid parameter number: no para...

    Mysql server has gone away 报错原因分析及解决办法

    mysql 警告 could not be resolved: Name or service not known

    Mysql用特殊字符设置密码遇到的问题

    Mysql的函数substring使用注意事项

    MySQL 5.7内存使用分析

    mysql 命令整理

    【mysql】主键、普通索引、唯一索引和全文索引的比较

    没有接收到要导入的数据。可能是文件名没有提交,也可能是文件大小超出 PHP 限...

    Mysql 报错'SQLSTATE[HY000] [1045] Access denied for user 'root'@'...

    php连接mysql报错The server requested authentication method unknown to ...

    Mysql登录提示ERROR 2003 (HY000): Can't connect to MySQL server o...

    Mysql报错SQLSTATE[HY000]: General error: 1366 Incorrect string ...

    全网最详尽的Centos和Windows系统 Mysql8 root忘记密码解决办法

    mysql数据库操作 报错 #1030 - Got error 176 "Read page with wrong ...

    Linux系统彻底卸载MySQL数据库

    Linux下mysql5.7忘记root密码的解决方法

    ERROR 1130 (HY000): Host '127.0.0.1' is not allowed to connect to...

    mysql查询指定列的重复行数

    Mysql知识学习

    MySQL 8.0 索引特性1-函数索引

    MySQL字符串函数substring:字符串截取

    Mysql的临时变量取值3例

    mysql查找字符串出现位置

    mysql 更改AUTO_INCREMENT 失败的解决办法

    MYSQL 数据库导入导出命令

    mysql如何判断不包含某个字符串

    Mysql中不要用操作符和函数名等等来命名字段

    SQL 学习整理

    SQL中EXISTS的使用

    Yii2报错没有关联命名 common\models\Post has no relation named

    SQL常用语句

    SQL复杂查询(案例一)

    Sql常用查询操作

    【知乎】从零学会SQL:复杂查询

    sql查询两张表中不同的数据

    推荐内容

    分享几个好用的bt搜索bt资源下载网址网站

    影视电影剧集动漫综艺bt资源在线播放网址网站推荐分享

    全网最新bt磁力搜索引擎bt资源bt网站网址分享

    怎样使用V2Ray代理和SSTap玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩...

    sstap游戏代理教程 从此玩如魔兽世界/绝地求生/LOL台服/战地3/黑色沙漠/彩虹六...

    使用V2Ray的mKCP协议加速游戏

    v2rayN已停止工作