题目描述
查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t
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 | t |
---|---|
10001 | 17 |
10004 | 16 |
10009 | 18 |
示例1
输入
复制
无
输出
复制
无
/*
*这道题一个知识点是分组查询,一个having。
*他需要注意的是使用count函数的同时查询其他的值就要利用分组的关键字
*因为不止有一个人会有超过15次的涨幅,所以按照员工编号分组,然后提取次数超过15次的人员,
*本题另外的一个难点是他计算以为员工多少次涨幅使用利用本员工有多少次写入这张表的数据计算的。
*/
--查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t
SELECT
emp_no,
COUNT( emp_no ) t
FROM
`salaries`
GROUP BY
emp_no
HAVING
t > 15;