描述
有一个薪水表,salaries简况如下:
图片说明

建表语句如下:

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));

请你查找薪水记录超过15次的员工号emp_no以及其对应的记录次数t,以上例子输出如下:
图片说明

思路:
1.统计一个员工的薪水涨幅次数,使用count() 函数,count(emp_no)。
2.然后显示出来的答案是次数 > 15,因为count() 不能与where 共同出现,所以使用having
3.答案显示是以每个员工作为单位,所以使用group by 合并同一类。

select emp_no,count(emp_no) t
from salaries
group by emp_no
having t > 15;

关于where,having,还有group by 的位置:
WHERE语句在GROUP BY语句之前;SQL会在分组之前计算WHERE语句。
HAVING语句在GROUP BY语句之后;SQL会在分组之后计算HAVING语句。