数据库操作练习3

来源:互联网 发布:开源建模软件 编辑:程序博客网 时间:2024/05/17 22:13

1. 从titles表获取按照title进行分组

题目描述

从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。
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);

输入描述:

输出描述:

titletAssistant Engineer2Engineer4省略省略Staff3
sql1:

     select title, count(title) as t from titles group by title having t>1

2. 从titles表获取按照title进行分组,注意对于重复的emp_no进行忽略。

题目描述

从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。
注意对于重复的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);

输入描述:

输出描述:

titletAssistant Engineer2Engineer3省略省略Staff3
sql1:

    先用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

题目描述

获取当前(to_date='9999-01-01')薪水第二多的员工的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_nosalary1000994409
sql1:

    查找出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)


原创粉丝点击