拿到题目后,我们不要着急一次性写出代码,先将题目进行分解。
1、按照员工号进行分组,先算出表中的薪水记录条数,这里使用到

group by、count

两个复合函数。
具体的SQL语句:

  select emp_no,count(emp_no) as countNo from salaries group by emp_no;

注意,这里一定进行分组,不然就是统计整张表的记录,这不是我们想要的。
2、查询到上述的记录后,我们就已经知道了每一个员工在表中的薪水记录条数,那么,接下来我们该如何去得
到我们想要的数据。我们再看回看一下题目:查找薪水记录超过15次的员工号emp_no,从上面的查询语
句中,我们已经获得了每一个员工的记录条数,按照我们往常的思路,查找XXX记录,条件是其XXX大于XX,
我们都会在SQL语句后面补上where XXX > XX。这道题我们能否也这样做呢?
答案是肯定的。
我们将上述查询到的结果看做是一张临时表,注意:这里的思路转换非常很重要。

   select emp_no,count(emp_no) as t from salaries group by emp_no as s;

那么,原题目将被转换为:从临时表中,找到 countNo 大于 15 的员工号及记录条数,这个显然就是一条
很简单的查询语句。

    select emp_no,t from (select emp_no,count(emp_no) t from salaries group by emp_no) s where s.t > 15;