1、题目描述:
查找薪水涨幅超过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`));
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_no | t |
---|---|
10001 | 17 |
10004 | 16 |
10009 | 18 |
2、代码:
select emp_no,count(1) as t
from salaries
group by emp_no having count(1)>15;
注意:查找count(*)和count(1)之间的区别
一. count(1)和count(*)的区别
1. count(1)和count(*)的作用:
都是检索表中所有记录行的数目,不论其是否包含null值。
2. 区别:但是count(1)比count(*)效率更高
二 . count(字段)与count(1)和count(*)的区别
count(字段)的作用是检索表中的这个字段的非空行数,不统计这个字段值为null的记录