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

JAVA中SQL查询语句大全,select多表查询,各种查询

_”表示一个字符串 – 查询emp表中薪资大于4000薪资小于2000的员工,显示姓名、薪资。...重要提示: a) 可以使用count(*)统计记录行数 b) 多个聚合函数可以一起查询 – 例如:根据部门进行分组,统计每个部门员工人数和平均薪资 select dept, count(*) 员工人数...上面小写的ab就是AB表的别名: – 查询部门员工两张表 select * from dept,emp; 上面查询的结果中存在大量错误的数据, 如果想正确显示部门部门对应的员工,可以通过where...from emp e1, emp e2 where e1.topid = e2.id; 4、(分组、聚合函数)列出最低薪资大于1500的各种职位,显示职位该职位最低薪资 – 先查询出各种职位的最低薪资...显示部门编号、员工数量,平均薪资

2.2K30

宏观分析法 — 教你如何实现复杂sql的编写,复杂sql巧妙剥离,不看血亏

下面我来举个列子: 题1:请用一条sql语句,统计薪资大于薪资最高的员工所在部门平均工资薪资最低的员工所在部门平均工资的平均工资的员工信息。...但是查询是有条件的,那么是什么条件呢?-- 我们在一层一层的往里渗透分析: “统计[薪资 大于] (薪资最高的员工所在部门平均工资薪资最低的员工所在部门平均工资的平均工资 ) 的员工信息。”...我们再来分析: “统计薪资 大于 ( [‘薪资最高的员工所在部门平均工资‘ ] [ ‘薪资最低的员工所在部门平均工资’ ] 的 平均工资 ) 的员工信息。”...那么接下来我们就要转为内部的具体分析了,首先拿出代表xy的文字: ‘薪资最高的员工所在部门平均工资‘ 薪资最低的员工所在部门平均工资’ ; 通过上面文字可以看出,这其实也是两个查询的表达式...上面的x这句话已经被拆的最后只剩下“薪资最高的员工”了,所以?号所代表当然是公司工资最高的那个人了所在的部门了。 最高薪资的语句是:select max(sal) from emp);所以“?”

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

    HiveSQL-面试题026 去掉最大最小值的部门平均薪水

    一、题目 有员工薪资表t_salary_026,包含员工ID(emp_id),部门ID(depart_id),薪水(salary),请计算去除最高最低薪资后的平均薪水;(每个部门员工数不少于3人) +-...,去掉这些行,考察点为row_number()开窗函数; 2.本题的难点在于同时去掉最高最低,所以需要按照不同的排序进行处理,所以需要进行两次开窗,排序; 3.去除最高最低薪资之后,按照部门分组进行分组取平均即可...; 维度 评分 题目难度 ⭐️⭐️⭐️ 题目清晰度 ⭐️⭐️⭐️⭐️⭐️ 业务常见度 ⭐️⭐️⭐️⭐️ 三、SQL 1)分别按照正序倒序进行开窗,得到部门最高最低薪资记录 select emp_id...1-1 2)去掉最高最低薪资,这里只能有第一行,不能取排序最大值进行去重,那样处理起来太复杂(不能确定排序最大值是多少,这也是进行两次开窗排序的原因) select emp_id, depart_id...2.如果最高最低薪资不止一人,该如何处理?

    23320

    MySQL单表&约束&事务

    ) AS '最低薪水', AVG(salary) AS '平均薪水' FROM emp; #3 查询薪水大于4000员工的个数 SELECT COUNT(*) FROM emp WHERE salary...#2.查询每个部门平均薪资 #3.查询每个部门平均薪资, 部门名称不能为null #1....查询有几个部门 SELECT dept_name AS '部门名称' FROM emp GROUP BY dept_name; #2.查询每个部门平均薪资 SELECT dept_name AS '部门名称...', AVG(salary) AS '平均薪资' FROM emp GROUP BY dept_name; # 查询平均薪资大于6000的部门 -- 需要在分组后再次进行过滤,使用 having SELECT...比如: 银行的转账业务,张三给李四转账500元 , 至少要操作两次数据库, 张三 -500, 李四 + 500,这中 间任何一步出现问题,整个操作就必须全部回滚, 这样才能保证用户银行都没有损失.

    1.2K30

    Oracle - 函数及多表关联

    函数根据处理的数据分为单行函数聚合函数(组函数),组函数又被称作聚合函数,用于对多行数据进行操作,并返回一个单一的结果,组函数仅可用于选择列表或查询的having子句;单行函数对单个数值进行操作,并返回一个值...求各个部门平均薪资 7 select e.deptno,avg(e.sal) 8 from emp e 9 group by e.deptno 10 11 -- 需求:求各个部门的月收入平均值...1 -- group by having 2 -- 查询部门平均薪资大于3000的部门 3 select e.deptno 4 from emp e 5 group by e.deptno 6...having avg(e.sal) > 3000 7 8 -- 查询部门薪资大于3000的雇员按部门分组的平均薪资 9 select e.deptno,avg(e.sal) 10 from emp...1 --薪资大于1200的雇员的平均薪资大于1500的部门,按照平均薪资升序排序 2 select e.deptno,avg(e.sal) 3 from emp e 4 where e.sal >

    96130

    数据库面试题+sql语句解析

    1显示每个部门的男生人数、女生人数总人数 2显示每个部门的男生人数、女生人数总人数,且该部门的额女生人数>=1,且按部门标号降序排序 drop table kingstar; select * from...1 else 0 end)女生人数, count(*)总人数 from kingstar GROUP BY dept_no; #2显示每个部门的男生人数、女生人数总人数,且该部门的额女生人数>=1...1列出薪资高于公司平均薪资的所有员工 2列出薪资高于在部门30工作的所有员工的薪金的员工姓名薪金 3列出在每个部门工作的员工数量,平均工资和平均服务期限 #发现avgTime,在看看表中的数据,原来...4列出所有部门的详细信息部门人数 5列出各种工作的最低工资 6列出各个部门MANAGER(经理)的最低薪金 #1列出薪资高于公司平均薪资的所有员工 select * from emp where sal...in(select(sal) from emp); #2列出薪资高于在部门30工作的所有员工的薪金的员工姓名薪金 select e.ename,e.sal,d.dname from emp e join

    64820

    用数据透视来做薪酬结构分析

    部门薪酬幅度 ?...上面是各个部门薪资的最高值最低公司,我们希望通过数据图表的分析来判断,那个部门薪资幅度最大,并且与平均值做对比,上面的是个幅度的薪资表,是在原始的数据表上,通过数据透视出来的。...我们会通过组合图来进行薪资幅度的图表的设计,如下图:这个图表设计的关键就是两个数据的叠加,然后把叠加数据的颜色填充改成背景一样的颜色。 ?...2、各个部门 不同区间的新词占比 这个数据透视表,是对工资区间做了个数据的分类,然后对各个部门薪资人数最成分的对比,来分析每个部门在每个区间的薪资占比。 ?...3、各个薪资区间人数占比,这个表格是对薪资最分组,然后以薪资为列,去分析各个薪资区间的人数,最高,最低工资。 ?

    2.2K20

    MySQL练习题(一)

    varchar(10) DEFAULT NULL, PRIMARY KEY (`deptno`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 实际练习 -- 1.查询部门薪资最低最高的数据...job为CLERK的最高薪资最低薪资. select deptno as '部门编号', max(sal) as '最高薪资', min(sal) as '最低薪资' from emp where job...emp表中最低薪资小于2000的部门且job为clerk的部门编号、最低薪资最高薪资. select b.deptno as '部门号',max(sal) as '最高工资',min(sal) as...group by b.deptno; Empty set (0.03 sec) -- 4.查询出emp表中薪资小于2000的且job为clerk的部门编号、最低薪资最高薪资. select deptno...where deptno=(select b.deptno as deptno from emp as b where b.ename = 'buddy'); * 需要注意的是在子查询中给表取别名的时候不能前面的主查询的别名一致

    1.4K10

    mysql-单表查询

    取每个部门的最高工资     取每个部门的员工数     取男人数女人数 小窍门:‘每’这个字后面的字段,就是我们分组的依据 #4、大前提:     可以按照任意字段分组,但是分组完毕后,比如group...teacher   |         7 | | 公关部    |         1 | +-----------+-----------+ 4 rows in set (0.00 sec) 3 查询公司内男员工女员工的个数...teacher   |  1000000.31 | | 公关部    |     7300.33 | +-----------+-------------+ 4 rows in set (0.00 sec) 6 查询岗位名以及各岗位的最低薪资...16800.026000 | | teacher   | 151842.901429 | +-----------+---------------+ 2 rows in set (0.00 sec) 3  查询各岗位平均薪资大于...--------+-----------+--------------+------------+--------+-----------+ 18 rows in set (0.00 sec) 2  查询各岗位平均薪资大于

    4.3K20

    MySQL经典33题,DQL语句硬核专项练习!!!

    ,部门 的人数. 19、列出最低薪金大于 1500 的各种工作及从事此工作的 部雇员人数. 20、列出在部门"SALES"工作的员工的姓名,假定 不知道销售部的部门编号. 21、列出薪金高于公司平均薪金的所有员工...30 工作的所有员工的薪金的员工 姓名薪金.部门名称. 25、列出在每个部门工作的员工数量,平均工资和平均服务期 限. 26、列出所有员工的姓名、部门名称工资。...哪些人的薪水在部门平均薪水之上 思路: 第一步:找出部门平均薪资 第二步:找出高于平均薪资的人 3、取得部门中(所有人的)平均的薪水等级 tip: 平均的薪水等级:先计算每一个薪水的等级...7、求平均薪水的等级最低部门部门名称 tip: 平均薪水最低的对应的等级一定是最低的 思路: 第一步:平均薪水最低的 第二步:找出对应的等级 8、取得比普通员工(员工代码没有在...思路: 第一步:找出job是CLERK的所有的人名部门名称: 第二步:每个部门的人数 第三步:将上边两个表做连接: 19、列出最低薪金大于 1500 的各种工作及从事此工作的

    61140

    【Java】面向对象案例

    )     输出:10号部门共2人,薪资是:22000 2.定义方法selectDeptno,方法接收员工姓名员工集合,方法中根据员工姓名查询员工的部门号,并返回部门号     示例:     ...selectDeptno("黄盖",empList)     返回:20 3.定义方法selectAvgSql,方法接收部门号、员工集合,方法中查询并打印指定部门号的最高薪资、和平均薪资。     ...示例:     selectAvgSql(20,empList)     输出:20号部门最高薪资是:18000,平均薪资是:15000 4.定义方法betterThanEmp,方法有2个参数,员工...5.定义方法betterThanSal,方法有接收员工集合,方法中打印:比所有员工平均薪资高的员工姓名,员工薪资。...、部门名称、最高薪资、最高薪资的员工姓名 2.定义方法printDept,方法接收部门集合,员工集合,方法中根据部门号匹配,打印曹操的部门号,部门名称 3.定义方法printMaxManager,方法接收部门集合

    44220

    MySQL单表查询

    查询岗位名以及岗位包含的所有员工名字 2. 查询岗位名以及各岗位内包含的员工个数 3. 查询公司内男员工女员工的个数 4. 查询岗位名以及各岗位的平均薪资 5....查询岗位名以及各岗位的最高薪资 6. 查询岗位名以及各岗位的最低薪资 7. 查询男员工与男员工的平均薪资,女员工与女员工的平均薪资 ? ? ?...查询各岗位平均薪资大于10000且小于20000的岗位名、平均工资 ? ?...查询所有员工信息,先按照age升序排序,如果age相同则按照hire_date降序排序 2. 查询各岗位平均薪资大于10000的岗位名、平均工资,结果按平均薪资升序排列 3....查询各岗位平均薪资大于10000的岗位名、平均工资,结果按平均薪资降序排列 ? ?

    17.8K10

    SQL学习笔记四(补充-1)之MySQL单表查询

    查询岗位名以及岗位包含的所有员工名字 2. 查询岗位名以及各岗位内包含的员工个数 3. 查询公司内男员工女员工的个数 4. 查询岗位名以及各岗位的平均薪资 5....查询岗位名以及各岗位的最高薪资 6. 查询岗位名以及各岗位的最低薪资 7. ...查询各岗位内包含的员工个数小于2的岗位名、岗位内包含员工名字、个数 3. 查询各岗位平均薪资大于10000的岗位名、平均工资 4....查询所有员工信息,先按照age升序排序,如果age相同则按照hire_date降序排序 2. 查询各岗位平均薪资大于10000的岗位名、平均工资,结果按平均薪资升序排列 3....查询各岗位平均薪资大于10000的岗位名、平均工资,结果按平均薪资降序排列 #题目1 mysql> select * from employee ORDER BY age asc,hire_date desc

    2.1K60

    Oracle数据库增删改查

    ,多表查询其实就是连接查询,连接查询分为内连接查询外连接查询 内连接查询:只有满足条件的数据才会被显示 外连接查询:可以控制不满足条件的数据是否显示 DEMO:查询出雇员的编号,姓名,职位,薪资...,工资等级,部门的位置部门的编号 发现emp表中的张三没有查询到,原因是以上多表查询是一个内连接查询,内连接查询的特征是满足过滤条件的数据才会被显示 对于emp表中的张三数据来说,DEPTNO...、外连接查询 左外连接查询:可以让左表不满足条件的数据也显示 右外连接查询:可以让右表不满足条件的数据也显示 外连接查询:可以让左表右边不满足条件的数据都显示出来 DEMO:使用左外连接对上个...如果eExpression1eExpression2的结果皆为null值,则NVL()返回NULL DEMO:查询雇员的最高工资最低工资 DEMO:查询雇员的平均工资工资之和...ORDER BY 排序字段 排序方式ASC/DESC DEMO:查询出每个职位的平均工资 DEMO:查询出每个部门的名称及其人数 DEMO:查询出每个部门的名称、人数、以及每个部门的雇员的最高最低工资

    1.6K10

    软件测试最常用的 SQL 命令 | 通过实例掌握基本查询、条件查询、聚合查询

    图片缩写全称对应 SQL:现在有这样一个公司部门人员各个信息的数据库,包含了如下几个表: departments 部门表字段:dept_emp 雇员部门表字段:dept_manager领导部门表字段:...employees雇员表字段:salaries薪资表字段:titles岗位表字段:基本查询-查询departments表的所有数据select * from departments;字段查询-查询employees...gender='M';排序-查询departments表里的所有部门并按部门序号进行从小到大排序展示select * from departments order by dept_no;若是想要按部门序号从大到小进行排序的话就可以使用...employees中字母顺序显示名字在“Anneke”(包括)“Chirstian”(包括)的人select * from employees where first_name between 'Anneke...having sum(salary)>1000000;COUNT、AVG-取salaries表中薪资排名前100名的平均薪资(需要利用子查询)select avg(salary) from (select

    97320
    领券