数据库操作练习3
来源:互联网 发布:开源建模软件 编辑:程序博客网 时间:2024/05/17 22:13
1. 从titles表获取按照title进行分组
题目描述
CREATE TABLE IF NOT EXISTS "titles" (
`emp_no` int(11) NOT NULL,
`title` varchar(50) NOT NULL,
`from_date` date NOT NULL,
`to_date` date DEFAULT NULL);
输入描述:
无
输出描述:
title t Assistant Engineer2Engineer4省略省略Staff3
select title, count(title) as t from titles group by title having t>1
2. 从titles表获取按照title进行分组,注意对于重复的emp_no进行忽略。
题目描述
注意对于重复的emp_no进行忽略。
CREATE TABLE IF NOT EXISTS "titles" (
`emp_no` int(11) NOT NULL,
`title` varchar(50) NOT NULL,
`from_date` date NOT NULL,
`to_date` date DEFAULT NULL);
输入描述:
无
输出描述:
title t Assistant Engineer2Engineer3省略省略Staff3
先用GROUP BY title将表格以title分组,再用COUNT(DISTINCT emp_no)(注意:这里注意distinct 作用于后面所有字段)可以统计同一title值且不包含重复emp_no值的记录条数,题目要输出每个title的个数为t和titile,故用AS语句将COUNT(DISTINCT emp_no)的值转换为t,由于WHERE后不可跟COUNT()函数,故用HAVING语句来限定t>=2的条件:
select title,count(distinct emp_no) as t from titles group by title having t>=2
3. 获取当前薪水第二多的员工的emp_no以及其对应的薪水salary
题目描述
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));
输入描述:
无
输出描述:
emp_no salary 1000994409
查找出to_date='9999-01-01'处的emp_no和salary两列,然后以salary 按照降序排列,从第二个开始取,取一个
select emp_no, salary from salaries where to_date='9999-01-01' order by salary desc limit 1,1
sql2:
先选出to_date='9999-01-01'处小于max(salary)的剩下的一波,再从剩下的一波中找出最大值
select emp_no, max(salary) from salaries where salary<(select max(salary) from salaries where to_date='9999-01-01')
sql3:
为了防止钱多的人可能存在多个,因此:
select emp_no, salary from salaries where salary = (select salary from salaries group by salary order by salary desc limit 1,1)
sql4:
select emp_no,max(salary) from salaries s where s.to_date = '9999-01-01' AND s.salary!=(select max(salary) from salaries)
- 数据库操作练习3
- Python练习3-操作MySQL数据库
- Orcale数据库操作练习
- JavaDB数据库操作练习
- 数据库操作练习1
- 数据库操作练习2
- 数据库操作练习4
- 数据库操作练习5
- 数据库操作练习6
- 数据库操作练习7
- 数据库操作练习8
- 数据库操作练习9
- 数据库操作练习10
- 数据库操作练习11
- 数据库操作练习12
- 数据库操作练习13
- Android简单数据库操作练习
- MySql数据库基本操作练习
- LeetCode 492 构造矩形
- Ubuntu下安装日语输入法
- HTML/CSS笔记整理
- Laravel 中的Facades的研究
- Mybatis Generator最完整配置详解
- 数据库操作练习3
- linux如何复制文件夹和
- Jmeter初学总结
- 35. Search Insert Position
- 小车在货架上取货的路径
- ubuntu 系统设置里面好多东西都没有
- 面试复习-------算法与数据结构------链表
- 剑指offer——和为S的两个数字
- 一个请求在spring中的流程