我有这个示例数据,我想查询出勤率最低的员工。
雇员身份证
|
受雇者
|
今天
|
时间到了
|
暂停
|
1.
|
胡安
|
2022-03-04
|
07:23:43
|
05:23:11
|
1.
|
胡安
|
2022-03-03
|
07:05:43
|
05:06:21
|
1.
|
胡安
|
2022-03-02
|
07:12:01
|
05:32:21
|
2.
|
本
|
2022-03-04
|
07:17:01
|
05:36:21
|
3.
|
温迪
|
2022-03-04
|
07:23:43
|
05:23:11
|
3.
|
温迪
|
2022-03-03
|
07:05:43
|
05:06:21
|
3.
|
温迪
|
2022-03-02
|
07:12:01
|
05:32:21
|
4.
|
厕所
|
2022-03-02
|
07:54:01
|
05:02:42
|
我可以得到给定日期范围内的总出勤次数:
SELECT COUNT(*) in_count, employee_id, employee
FROM active_attendance
WHERE (today BETWEEN DATE_FORMAT(NOW() ,'%Y-%m-01') AND NOW() )
GROUP BY employee_id
ORDER BY in_count ASC
这就产生了:
不算在内
|
雇员身份证
|
受雇者
|
1.
|
2.
|
本
|
1.
|
4.
|
厕所
|
3.
|
1.
|
胡安
|
3.
|
3.
|
温迪
|
现在,我正在挣扎如何只过滤最低的
in_count
在这种情况下,我只想
BEN & JOHN
被归还。
我希望它是怎样的:
不算在内
|
雇员身份证
|
受雇者
|
1.
|
2.
|
本
|
1.
|
4.
|
厕所
|
我尝试过的:这只返回第一个最小值,不包括重复值
SELECT MIN(att), employee_id, employee
FROM (
SELECT COUNT(*) in_count, employee, employee_id
FROM 202_active_attendance
WHERE today BETWEEN '2021-04-01' AND '2021-04-30'
GROUP BY employee_id
ORDER BY in_count
) AS test