Запрос для 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;

Я получил результат при выполнении вышеуказанного запроса..

Другие вопросы по тегам