找到工作超过2天的员工

时间:2016-04-07 03:08:18

标签: mysql sql database

我想找到从以下出勤表工作超过2天的员工的身份:

id   date    status
1  16-04-06    w
1  16-04-07    w
1  16-04-08    w
2  16-04-06   nw
2  16-04-07   nw
2  16-04-07    w

其中w表示'工作'而nw意味着没有工作'。 我尝试过以下方法:

select id 
from(select a.id as id,count(*) as cou 
     from attendace a 
     where a.status='w' group by a.id) as myalias 
where cou>2;

我不确定为什么我需要使用myalias。但是,如果我不使用它,则会出现错误说"每个派生表必须有自己的别名"。此查询提供了所需的输出。能帮我提一个有效的查询吗?提前致谢

3 个答案:

答案 0 :(得分:1)

按ID对表格进行分组,然后使用count(*)> 2

进行过滤
 Select id from attendance where status = 'w' group by id having count(*) > 2;

答案 1 :(得分:1)

试试这个:

select distinct id from attendance where status='w' group by id having count(1) > 2

SQLFiddle

答案 2 :(得分:1)

尝试:

SELECT id
FROM
attendance
WHERE status = 'w'
GROUP BY id
HAVING COUNT(status) > 2