题目
输入输出查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t
CREATE TABLEsalaries
(
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
将数据分组,这样才能去比较每个人的薪水情况group by emp_no
,然后比较怎么办呢?还是不好办,首先想到的还是拿着一个数去和其他的比较,但是会重复,既然是涨工资了,表现在数据上就是数据不一样,那么我可不可以通过count()
统计出来每个员工工资的不同次数呢,这个不就是工资的不同吗?就用having count(salary) > 15
将所有符合条件的筛出来。还有一点就是涨工资的次数是需要统计的而且需要使用t表示,还需要用到重命名以及count()
因为在having
中不能重命名
总结
-
group by
的使用 - 聚集函数
count()
的使用 - 不同数据的个数统计
- 列重命名
网友评论