mysql之多表查询的其他查询
1,临时表查询
(1)需求:查询高于本部门平均工资的人员
select * from person as p, (select dept_id, avg(salary) as '平均工资' from person GROUP BY dept_id) as ptable where p.dept_id = ptable.dept_id and p.salary > ptable.`平均工资`;
(2)需求:查询高于本部门平均工资的人员,显示部门名
第一步查询出每个部门的平均工资,并显示部门名
select * from (select dept_id, avg(salary) as '平均工资' from person GROUP BY dept_id) as p, dept as pd where p.dept_id = pd.did;
第二步再对每个人的工资和第一步查询出来的结果集(让其作为临时表)的平均工资比较
select * from person as p, (select * from (select dept_id, avg(salary) as '平均工资' from person GROUP BY dept_id) as pa, dept as pd where pa.dept_id = pd.did) as ptable where p.dept_id = ptable.dept_id and p.salary > ptable.`平均工资`;
2.判断查询 IF关键字
(1)需求:根据工资高低,将人员划分为两个级别,分别为高端人群和低端人群。显示效果:姓名、年龄、性别、工资、级别
-- IF关键字可以带三个参数,参数1条件,参数2为参数1条件成立时使用的,参数3为参数1条件不成立时使用
select p.name, p.age, p.sex, p.salary, IF(p.salary > 10000, '高端人群', '低端人群') as '级别' from person as p;
(2)需求:根据工资高低统计每个部门人员收入情况,划分为富人、小资、平民、屌丝四个级别,要求统计四个级别分别有多少人
select dname,
sum(case WHEN person.salary > 10000 THEN 1 else 0 END) as '富人',
sum(case WHEN person.salary BETWEEN 5000 and 10000 THEN 1 else 0 END) as '小资',
sum(case WHEN person.salary BETWEEN 3000 and 5000 THEN 1 else 0 END) as '平民',
sum(case WHEN person.salary < 3000 THEN 1 else 0 END) as '屌丝'
from dept, person where dept.did = person.dept_id GROUP BY dept_id;
mysql之多表查询的其他查询的更多相关文章
- sql:sql server,MySQL,PostgreSQL的表,视图,存储过程结构查询
sql server 2005: --SQL SERVER 2005 生成代码需要知道的SQL语句 use LibrarySystem --查询当前数据库所有表和其的主键字段,字段类型,长度,是否为空 ...
- MySQL在同一个表上,删除查询出来的结果
背景 有一个程序员员工表(code_user),包含用户id.姓名.掌握的语言. 表数据如下: +---------+-----------+----------+ | user_id | user_ ...
- sql:MySQL 6.7 表,视图,存储过程结构查询
#数据库MySQL 6.7 use sakila; #查询表名 show tables; # SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA. ...
- MySQL库和表的管理
MySQL数据库服务配置好后,系统会有4个默认的数据库. information_schema:虚拟对象,其对象都保存在内存中performance_schema:服务器性能指标库mysql:记录用户 ...
- MySQL(三) 数据库表的查询操作【重要】
序言 1.MySQL表操作(创建表,查询表结构,更改表字段等), 2.MySQL的数据类型(CHAR.VARCHAR.BLOB,等), 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对 ...
- MySQL数据库学习笔记(六)----MySQL多表查询之外键、表连接、子查询、索引
本章主要内容: 一.外键 二.表连接 三.子查询 四.索引 一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复 ...
- 转: 从Mysql某一表中随机读取n条数据的SQL查询语句
若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...
- MYSQL的全表扫描,主键索引(聚集索引、第一索引),非主键索引(非聚集索引、第二索引),覆盖索引四种不同查询的分析
文章出处:http://inter12.iteye.com/blog/1430144 MYSQL的全表扫描,主键索引(聚集索引.第一索引),非主键索引(非聚集索引.第二索引),覆盖索引四种不同查询的分 ...
- MySQL多表查询之外键、表连接、子查询、索引
MySQL多表查询之外键.表连接.子查询.索引 一.外键: 1.什么是外键 2.外键语法 3.外键的条件 4.添加外键 5.删除外键 1.什么是外键: 主键:是唯一标识一条记录,不能有重复的,不允许为 ...
- MYSQL优化派生表(子查询)在From语句中的
Mysql 在5.6.3中,优化器更有效率地处理派生表(在from语句中的子查询): 优化器推迟物化子查询在from语句中的子查询,知道子查询的内容在查询正真执行需要时,才开始物化.这一举措提高了性能 ...
随机推荐
- python 虚拟环境安装
windows虚拟环境的搭建 安装 # 建议使用pip3安装到python3环境下 pip3 install virtualenv pip3 install virtualenvwrapper-win ...
- Nacos注册中心使用
创建两个工程,一个是nacos-provider, 另一个是naocos-consumer: 添加nacos-provider的依赖 <parent> <groupId>org ...
- 封装是java面向对象编程三大特征之一。 简单的属性封装
package com.cqvie.Hello; class Person { private int age; private String name; public void tell() { ...
- Deepin v15.11驱动安装问题
最近想用Linux跑深度学习,试了好几个发行版,最终选择了Deepin v15.11,但由于配置比较新,它不能兼容很多驱动,还得自己装,以下是我失败N次后得到的经验: 电脑配置 配置如下: 型号:DE ...
- 为iOS编译FFmpeg静态库
为iOS编译FFmpeg静态库 环境:OS X Yosemite (版本10.10.5) Xcode (Version 7.1.1 (7B1005)) 一.资料准备: (1)ffmpeg源 ...
- drf (学习第三部)
目录 视图 视图额基类 视图类扩展 GenericAPIView的视图子类 视图集ViewSet 路由Routers 视图 Django REST framework 提供的视图的主要作用: 控制序列 ...
- 看完这篇 final、finally 和 finalize 和面试官扯皮就没问题了
我把自己以往的文章汇总成为了 Github ,欢迎各位大佬 star https://github.com/crisxuan/bestJavaer 已提交此篇文章 final 是 Java 中的关键字 ...
- 请教:Effective Java 第120页,代码运行未重现报错
在阅读<Effective Java 第二版>时,尝试编写重现第120页问题,发现未重现报错信息,可以正常运行并输出结果.有知道原因的请在评论中留言指导一下,谢谢!!! 问题如下
- Ideas and Tricks
1.树上拓扑排序计数 结论$\dfrac{n!}{\prod\limits_{i=1}^n size_i}$ 对于节点$i$,其子树随意排序的结果是$size[i]!$ 但$i$需要排在第一位,只有$ ...
- 对hadoop之RPC的理解
因为公司hadoop集群出现了一些瓶颈,在机器不增加的情况下需要进行优化,不管是存储还是处理性能,更合理的利用现有集群的资源,所以来学习了一波hadoop的rpc相关的知识和hdfs方面的知识,以及y ...