1. 题目描述
1.1 输入
有一个薪水表,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));
1.2 输出
请你查找薪水记录超过15次的员工号emp_no以及其对应的记录次数t,以上例子输出如下:
2. 题目分析及解答
2.1 题目分析
根据查询要求,首先需分别统计salaries表中每位员工的记录次数,可使用COUNT函数和GROUP BY子句来实现。同时,要求输出的查询结果应为薪水记录超过15次的员工,则还需使用HAVING子句,在由 GROUP BY 子句创建的分组上设置过滤条件,排除掉薪水记录未超过15次的员工。
2.2 详细解答
根据题目分析可直接写出相应的SQL查询语句:
SELECT emp_no, COUNT(emp_no) as t FROM salaries GROUP BY emp_no HAVING t > 15;