我想找到从以下出勤表工作超过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
。但是,如果我不使用它,则会出现错误说"每个派生表必须有自己的别名"。此查询提供了所需的输出。能帮我提一个有效的查询吗?提前致谢
答案 0 :(得分:1)
按ID对表格进行分组,然后使用count(*)> 2
进行过滤 Select id from attendance where status = 'w' group by id having count(*) > 2;
答案 1 :(得分:1)
答案 2 :(得分:1)
尝试:
SELECT id
FROM
attendance
WHERE status = 'w'
GROUP BY id
HAVING COUNT(status) > 2