数据库SQL实战--查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数t

时间限制:1秒 空间限制:32768K 热度指数:45949

题目描述

查找薪水涨幅超过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_not
1000117
1000416
1000918

方法一:

这道题有这样几个地方需要注意下,首先如何统计薪水涨幅超过15次的员工,就是用的count(emp_no)这个方法直接计算的,注意用count这个统计出现次数的方法。

还有就是group by与order by有什么区别,order by就是排序。而group by就是分组,举个例子好说点,group by 单位名称 

这样的运行结果就是以“单位名称”为分类标志统计各单位的职工人数和工资总额。

这样可以更好的分下类,更好看一些。

还有就是为什么没有用where而是用的having,记住下面的两句话就好了。

WHERE语句在GROUP BY语句之前;SQL会在分组之前计算WHERE语句。   

HAVING语句在GROUP BY语句之后;SQL会在分组之后计算HAVING语句。

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

方法二:

select a.* from(

select emp_no,count(*) as t

from salaries

group by emp_no) as a

where t>15

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值