首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL从入门到入魔(02)

*3 '年终奖' from emp; select ename 名字,sal 工资,sal*3 年终奖 from emp; 查询每个员工姓名,工资5块钱之后工资 select ename,sal...,sal+5 涨后 from emp; ###聚合函数 聚合函数是对查询多条数据进行统计查询,包括:求平均值,最大值,最小值,求和,计数 平均值avg 查询1号部门平均工资 select avg(...ename like '%空%'; ###分组查询 题目需求中每个xx 就以xx作为分组字段 查询员工平均工资 select avg(sal) from emp; 查询1号部门平均工资...select …from 表名 where 普通字段条件 group by 分组字段名 having 聚合函数条件 order by 排序字段名 limit …; 查询每个部门平均工资,只查询平均工资高于...job,count(*) from emp group by job having count(*)=1; 查询每个部门平均工资,只查询工资在1000到3000之间,并且过滤掉平均工资低于2000

63630
您找到你想要的搜索结果了吗?
是的
没有找到

【MySql】复合查询

> (select avg(sal) from emp); 显示每个部门平均工资最高工资 select deptno, max(sal)最高,format(avg(sal),2) 平均 from...30所有员工工资高员工姓名、工资部门号 第一种做法: select * from emp where sal > (select max(sal) from emp where deptno=...30任意员工工资高员工姓名、工资部门号(包含自己部门员工) select * from emp where sal > any(select distinct sal from emp where...显示每个高于自己部门平均工资员工姓名、部门、工资、平均工资 select * from emp,(select deptno,avg(sal) myavg from emp group by deptno...描述 查找所有员工入职时候薪水情况,给出emp_no以及salary, 并按照emp_no进行逆序(请注意,一个员工可能有多次涨情况) CREATE TABLE employees (

19130

MySQL数据库:第七章:分组查询

分组后条件 ⑤ order by 排序列表 ⑥ 特点: 1、查询列表往往是:分组函数分组后字段 换句话说,分组函数一同查询字段,一般就是分组后字段 2、分组查询筛选有两种:分组筛选分组后筛选...3、分组查询可以通过单个字段,也可以通过多个字段,中间用逗号隔开 #1)简单分组 #案例1:查询每个工种员工平均工资 SELECT AVG(salary) 平均工资,job_id FROM employees...GROUP BY job_id; #2)可以实现分组筛选 #案例1:查询邮箱中包含a字符 每个部门最高工资 SELECT MAX(salary) ,department_id FROM employees...5 #①查询每个部门员工个数 SELECT COUNT(*) 员工个数,department_id FROM employees GROUP BY department_id #②查询①结果集中,有哪个部门员工个数...查询所有部门编号,员工数量工资平均值,并按平均工资降序 SELECT department_id,COUNT(*) 个数,AVG(salary) 平均工资 FROM employees GROUP

93210

MySQL基础之查询(二)

一般来讲,能用分组筛选,尽量使用分组筛选,提高效率 3、分组可以按单个字段也可以按多个字段 4、可以搭配着排序使用 引入:查询每个部门员工个数 SELECT COUNT(*) FROM employees...`location_id` GROUP BY city; 案例2:查询有奖金每个部门部门部门领导编号部门最低工资 SELECT department_name,d....`location_id` GROUP BY city HAVING COUNT(*)>3; 案例4.查询哪个部门员工个数>3部门员工个数,并按个数降序(添加排序) ①查询每个部门员工个数 SELECT...; 三、from后面 将子查询结果充当一张表,要求必须起别名 案例:查询每个部门平均工资工资等级 ①查询每个部门平均工资 SELECT AVG(salary),department_id FROM...查询平均工资最低部门信息部门平均工资 #①各部门平均工资 SELECT AVG(salary),department_id FROM employees GROUP BY department_id

1.8K10

MySQL复合查询

显示工资高于平均工资员工信息 同样先将此信息分成两部分:一是找到高于平均工资sal,二是通过此sal匹配,找到对应ename。...显示每个部门平均工资最高工资 此时显示每个部门,而不是全公司,所以一定是要按照部门进行分组。按照谁分组,查询时就可以将谁显示,因为这样相同值可以压缩。...平均工资小数过多,用format函数将小数控制在两位: 显示平均工资低于2000部门号和它平均工资 我们先将其分解:分组部门找到平均工资低于2000avg(sal),通过这个avg(sal)找到对应部门号...案例 显示每个高于自己部门平均工资员工姓名、部门、工资、平均工资 对于每一个部门,显示是高于自己部门平均工资员工。 首先,将自己部门平均工资筛选出来。...显示每个部门信息(部门名,编号,地址)人员数量 首先,人员数量一定是聚合出来

18240

带你学MySQL系列 | 困扰MySQL初学者分组聚合查询,我终于讲明白了!

能用分组筛选,就优先考虑分组筛选。(考虑到性能问题) 3)案例讲解 原始数据集如下: ① 分组筛选 习题一:查询姓名中包含S字符每个部门工资之和。...习题二:查询工资大于2000,不同部门平均工资。 ② 分组后筛选 习题一:查询部门员工个数大于3部门编号员工个数。...习题二:查询每个部门最高工资大于3000部门编号最高工资。 ③ 分组筛选分组后筛选合用 习题:查询1981年入职,不同部门间工资平均值大于2000部门编号和平均值。...length(ename) len,count(*) counts from emp group by len having counts > 3; 结果如下: 6.分组查询(按多个字段分组) 习题:查询每个部门每个工种员工平均工资...7.group byorder by,一对老搭档 习题一:查询每个部门员工平均工资,按照平均工资降序。 习题二:查询每个部门员工平均工资,按照平均工资升序。

1.2K30

MySQL数据库:第七章:分组查询

⑤order by 排序列表 ⑥特点:1、查询列表往往是:分组函数分组后字段换句话说,分组函数一同查询字段,一般就是分组后字段2、分组查询筛选有两种:分组筛选分组后筛选连接关键字 位置...3、分组查询可以通过单个字段,也可以通过多个字段,中间用逗号隔开#1)简单分组#案例1:查询每个工种员工平均工资SELECT AVG(salary) 平均工资,job_idFROM employeesGROUP...BY job_id;#2)可以实现分组筛选#案例1:查询邮箱中包含a字符 每个部门最高工资SELECT MAX(salary) ,department_idFROM employeesWHERE...email LIKE ‘%a%’GROUP BY department_id;#案例2:查询有奖金每个领导手下员工平均工资SELECT AVG(salary) 平均工资,manager_idFROM...employeesWHERE commission_pct IS NOT NULLGROUP BY manager_id;#3)可以实现分组后筛选#案例1:查询哪个部门员工个数>5#①查询每个部门员工个数

29520

MYSQL数据库-复合查询

使用年薪进行降序排序 显示工资最高员工名字工作岗位 显示工资高于平均工资员工信息 显示每个部门平均工资最高工资 显示平均工资低于2000部门号和它平均工资 显示每种岗位雇员总数...本节我们用一个简单公司管理系统,有三张表EMP,DEPT,SALGRADE来演示如何进行多表查询 示例: 显示雇员名、雇员工资以及所在部门名字 因为上面的数据来自EMPDEPT表,因此要联合查询...;其实我们只要emp表中deptno = dept表中deptno字段记录 显示部门号为10部门名,员工工资 显示各个员工姓名,工资,及工资级别 三、自连接 自连接是指在同一张表连接查询...:显示工资比部门30所有员工工资高员工姓名、工资部门号 any关键字:显示工资比部门30任意员工工资高员工姓名、工资部门号(包含自己部门员工) 3、多列子查询 单行子查询是指子查询只返回单列...这里要用到数据查询技巧,把一个子查询当做一个临时表使用 示例: 显示每个高于自己部门平均工资员工姓名、部门、工资、平均工资 查找每个部门工资最高的人姓名、工资、部门、最高工资 显示每个部门信息

13.2K30

【MySQL】表查询与连接

如何显示每个部门平均工资最高工资。...select deptno, max(sal) 最高工资, min(sal) 最低工资 from emp group by deptno; 如何理解分组 (重要): 在上面的案例中,我们要求每个部门平均工资与最高工作...现在我们用 “分表” 思想来求一下每个部门每种岗位平均工资最低工资: 求每个部门每种岗位平均工资与最低工资,肯定需要按部门岗位进行分组,而分组就是分表,所以我们可以理解为对分组后得到子表进行聚合统计查询平均工资最低工资...任意员工工资高员工姓名、工资部门号(包含自己部门员工)。...---- 比如,我们要显示每个高于自己部门平均工资员工姓名、部门、工资、平均工资,我们可以一步步来拆解这个查询: 查出每个部门平均工资: select deptno, avg(sal) avg_sal

23120

【MySQL】复合查询

select ename, sal from emp where sal > (select avg(sal) from emp); 显示每个部门平均工资最高工资 select...30 所有员工工资高员工姓名、工资部门号 select ename, sal, deptno from emp -> where sal > all(select sal...from emp where deptno=30); any 关键字;显示工资比部门 30 任意员工工资高员工姓名、工资部门号(包含自己部门员工) select ename, sal...实例: 显示每个高于自己部门平均工资员工姓名、部门、工资、平均工资 先获取各个部门平均工资,将其看作临时表 select deptno dt, avg(sal) 平均工资 from emp...-> and emp.deptno = tmp.dt; 查找每个部门工资最高的人姓名、工资、部门、最高工资 先获取每个部门最高工资的人信息: select deptno, max(sal) 最高工资

11110

Oracle 数据库查询专题 (select * from emmmm 80 T)

查询所有部门名称员工姓名,包括没有员工部门名称也显示。...把员工姓名工作类型连接在一起,中间用“-”分割显示(concat函数)。(用concat函数报错) –15. 截取员工姓名3个字符第4个字符以后内容显示。...查询员工编号,姓名所在部门名称。...查询工资高于本部门平均工资员工。 select e.ename from emp e where sal>(select –21. 查询每个部门中拥有最高工资员工信息。...–50.列出薪金高于在部门30工作所有员工薪金员工姓名薪金。 –51.列出在每个部门工作员工数量、平均工资和平均服务期限。 –52.列出所有员工姓名、部门名称工资。

42810

SQL综合实战

~~ # 1、查询出高于10号部门平均工资员工信息 # 1.查询10部门平均工资员工信息 select avg(sal) from emp where deptno = 10;...); # 3、10号部门同名同工作员工信息 # 1.得到10部门姓名工作 select ename ,job from emp where deptno = 10; # 2。...= 10; # 4、获取员工名字部门名字 # 1.查询员工姓名部门信息 select deptno as 部门,ename as 员工姓名 from emp; # 2.得出结果...d on e.deptno = d.deptno where empno = 7788; # 13、查询出高于本部门平均工资员工信息 #1.分组统计每个部门平均工资 SELECT...emp as e2 on e.mgr = e2.empno where e.empno = 7369; # 16、查询出各个部门薪水最高员工所有信息 #1.分组统计每个部门员工最高薪资是多少

11510

Oracle中分组查询与DML

a) 统计每个部门编号, 最高工资最低工资 select deptno, max(sal), min(sal) from emp group by deptno order by deptno;...1.2 带 where 分组查询 注意: group by 子句要写到 where 子句后面 a) 查询每个部门的人数和平均工资, 排除 10 部门 select deptno, count(...子句中不允许使用分组函数, 分组函数用于分组过滤 having 用于过滤分组后条件 a) 查询每个部门总工资和平均工资, 排除平均工资低于 1600 部门 select deptno...job, min(sal) from emp group by job having min(sal)<2000; b)列出平均工资大于 1200 元部门工作搭配组合 select deptno,...) values (1236, '小李'); 2.3 修改(update) a) 语法 update 表名 set 列 1=值 1[, 列 2=值 2…][where 条件] b) 将 10 部门员工工资调高

1.2K20

javaweb-oracle-1-57

truncate table person; 序列 数据库一般都是多人操作,每个人修改各不相同,尤其是id增长,如何确定? 使用序列 ?...分组查询时表结构会发生改变,原先结构可能已经不适用 得到必须是分组共同特性 ---分组查询 ---查询出每个部门平均工资 ---分组查询中,出现在group by后面的原始列,才能出现在select...--比如下面的条件语句也不能使用别名当条件 select ename, sal s from emp where sal>1500; 引申:select中优先级 ---查询出每个部门工资高于800员工平均工资...---查询出每个部门工资高于800员工平均工资 ---然后再查询出平均工资高于2000部门 select e.deptno, avg(e.sal) asal from emp e where e.sal...---查询出每个部门最低工资,最低工资员工姓名,员工所在部门名称 ---1,先查询出每个部门最低工资,以查询到结果作为表进入查询条件 select deptno, min(sal) msal from

60910

如何轻松地解决Mysql函数难题?学习视频限时免费领!

要知道,数据库中函数实在太多了,每个去都学习的话,成本的确有点高。但其实,常用函数就那些。 今天我们给你整理了常用函数及示例,希望对你有所帮助。 一、字符串函数 CONCAT(str1,str2,....示例: 查询每个部门员工姓名 四、开窗函数(重点) Mysql8.0版本才支持开窗函数,也可以叫做数据分析函数, 开窗函数本质还是聚合运算,只不过它更具灵活性,它对数据每一行,都使用与该行相关行进行计算并返回计算结果...示例1:有个员工表emp,查询所有员工平均工资 select *,avg(sal) over() 所有员工平均工资 from emp; #当over中没有指定分区、排序滑动窗口时,将整个表作为一个区...,默认计算平均工资 示例2 查询各部门平均工资 select *,avg(sal) over(partition by deptno) 部门平均工资 from emp; #当over中指定了分区,...但是没有指定排序滑动窗口时,默认计算是当前分区内平均工资 示例3 开窗函数滑动窗口求移动平均工资 #实现效果是 部门分区后 当前行一行后一行求平均工资 (相当于移动求平均工资) select

66710
领券