Запрос для PSQL определяет количество пациентов в текущее время системы
select room_id,count (distinct(patient_id)) as patient_id
from patient_flow where time='CURRENT_TIME';
Мне нужно количество идентификаторов пациентов с соответствующими номерами в текущий момент времени.
id | patient_id | room_id | time
----+-------------+---------+---------------------
1 | 00035-67351 | 1 | 2015-06-09 10:11:20
1 | 00035-67351 | 2 | 2015-06-09 10:31:20
1 | 00035-67351 | 1 | 2015-06-09 10:12:20
1 | 00035-67351 | 1 | 2015-06-09 10:12:40
1 | 00035-67351 | 1 | 2015-06-09 10:15:40
1 | 00035-67351 | 1 | 2015-06-09 10:30:40
1 | 00035-67351 | 2 | 2015-06-09 10:32:40
1 | 00035-67351 | 2 | 2015-06-09 10:36:40
1 | 00035-67351 | 2 | 2015-06-09 10:38:40
1 | 00035-67351 | 2 | 2015-06-09 10:50:40
Я написал запрос выше, но он не выполняется.
2 ответа
Вы пропустили GROUP BY
при использовании с агрегатной функцией COUNT()
, Следующий запрос будет работать:
SELECT room_id, COUNT (DISTINCT(patient_id)) AS patient_id
FROM patient_flow
WHERE time = CURRENT_DATE
GROUP BY room_id;
select current_time, room_id, count (distinct(patient_id)) as patient_id from patient_flow group by room_id;
Я получил результат при выполнении вышеуказанного запроса..