#sql #stored-procedures #pivot-table
#sql #хранимые процедуры #сводная таблица
Вопрос:
У меня есть таблица посещаемости, как показано ниже, я хочу сгруппировать их по времени и разделу, статус null означает, что сотрудник отсутствует :
Есть идеи, как сгенерировать вывод, как показано ниже?
мой текущий код :
SELECT TIME,COUNT(SECTION) AS SECTION,COUNT(STATUS) AS COUNT
FROM attendance_record
GROUP BY TIME,SECTION
ORDER BY TIME
Ответ №1:
Если я понимаю ваш вопрос, просто используйте условную агрегацию:
SELECT TIME, SECTION, COUNT(*) as TOTAL,
COUNT(STATUS) AS IN, ( COUNT(*) - COUNT(STATUS) ) as ABSENT
FROM attendance_record
GROUP BY TIME, SECTION
ORDER BY TIME