Mysql 通过具有最小值和最大值的列获取满足条件组的行数

Mysql 通过具有最小值和最大值的列获取满足条件组的行数,mysql,group-by,having-clause,Mysql,Group By,Having Clause,我想得到在考勤场景中某个特定日期范围内准时离开的人数。为此,我需要所有在离职时标记出勤率的员工。如果一名员工至少登录两次(1次表示进入,2次表示退出),则该员工应计入标记其外出出勤的员工总数 SELECT Max(TIMESTAMP),COUNT(DISTINCT employee_id) totalCount FROM attendance , db2.psnl p WHERE Date(timestamp) BETWEEN STR_TO_DATE('14/05/2019', '%d/%m/%

我想得到在考勤场景中某个特定日期范围内准时离开的人数。为此,我需要所有在离职时标记出勤率的员工。如果一名员工至少登录两次(1次表示进入,2次表示退出),则该员工应计入标记其外出出勤的员工总数

SELECT Max(TIMESTAMP),COUNT(DISTINCT employee_id) totalCount FROM attendance , db2.psnl p WHERE Date(timestamp) BETWEEN STR_TO_DATE('14/05/2019', '%d/%m/%Y') AND STR_TO_DATE('14/05/2019', '%d/%m/%Y') AND  employee_id=p.MyId AND p.PayRollOfficeId=3 GROUP BY DATE(TIMESTAMP) HAVING COUNT(employee_id) >=2 
对于单个员工,此查询的修改版本作为员工的分组过滤器工作,因此当任何日期的员工至少有2个条目时,count>=2将返回行


Foll query返回每天至少登录两次的员工的记录

select
attendance_id,
max(timestamp) as last_entry_by_employee,
group_concat(timestamp),
count(*) as c
from
attendance
group by employee_id, date_format(timestamp, "%Y-%m-%d")
having c >= 2 

你为什么要修改员工ID?我们需要身份证。它们不一定是真的。看见