我有员工出勤数据。我想查找登录时间 <10.30 的用户在一个月内的登录总次数。
还有一个条件是我应该找到每天的首次登录时间。 我可以通过编写以下查询来成功找到。但是我无法找到一个月内“有效”登录的总数
SELECT employee_code,
MIN(sync_date_time) AS minimum,
DATE_FORMAT(sync_date_time,'%Y-%m-%d') AS day
FROM `attendance_records`
WHERE DATE_FORMAT(sync_date_time,'%H:%i:%s') > '00:00:00' AND
DATE_FORMAT(sync_date_time,'%H:%i:%s') < '10:30:00' AND
sync_date_time >= '2017-01-01 00:00:00' AND
sync_date_time <= '2017-01-31 23:59:59'
GROUP BY employee_code,day
这将给我以下结果
我应该修改查询的哪一部分?
编辑1:
示例数据
预期输出
9899 不应显示为“4”,因为他在 2018-01-02 登录了 2 次p>
最佳答案
只需对employee_code
执行GROUP BY
:
SELECT employee_code,
MIN(sync_date_time) AS first_login_time,
count(distinct date(sync_date_time)) AS emp_count
FROM attendance_records
WHERE DATE_FORMAT(sync_date_time,'%H:%i:%s') > '00:00:00' AND
DATE_FORMAT(sync_date_time,'%H:%i:%s') < '10:30:00' AND
sync_date_time >= '2017-01-01 00:00:00' AND
sync_date_time <= '2017-01-31 23:59:59'
GROUP BY employee_code
关于java - 为每个用户选择每天的首次登录时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42051742/