Получить Количество строк, удовлетворяющих группе условий, по столбцу с min и max - PullRequest
0 голосов
/ 17 мая 2019

Я хочу получить количество людей, которые уезжают вовремя в определенном диапазоне дат в сценарии посещаемости. Для этого мне нужно всего сотрудников, которые отметили свою посещаемость, когда они покинули офис. Если сотрудник вошел в систему как минимум два раза (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 

Для одного сотрудника измененная версия этого запроса работает как группа по фильтрам сотрудника, поэтому count> = 2 вернет строки, когда у нас будет хотя бы 2 записи против сотрудника на любую дату.

db data

structure

1 Ответ

0 голосов
/ 17 мая 2019

Запрос Foll возвращает записи о тех сотрудниках, которые хотя бы дважды заходили в систему

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 
...