java - 为每个用户选择每天的首次登录时间

标签 java mysql database

我有员工出勤数据。我想查找登录时间 <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

这将给我以下结果

enter image description here

我应该修改查询的哪一部分?

编辑1:

示例数据

enter image description here

预期输出

enter image description here

9899 不应显示为“4”,因为他在 2018-01-02 登录了 2 次

最佳答案

只需对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/

相关文章:

java - 如何使用java向mySQL表中插入数据

php - 为什么我不写入我的数据库

java - 创建数据库连接的最佳方式

java - 在 writeToParcel 方法中写入 Parcel 中的对象

java - Apache Shiro HashedCredentialsMatcher 生成错误的盐

Java RMI 注册表找不到服务器对象

java - 如何编写java程序,使其输出以下行: (String)

php - 如何检查mysql表中多行中的值与每行中的唯一数据关联

mysql - 我应该有一个表来获取下拉值还是为每个下拉列表创建多个表

mysql - 符合增量同步条件的数据库模式