Я хотел бы получить данные из моей таблицы, включая пустые строки. Например: я хочу знать, была ли какая-то активность за последние 30 минут. Если что-то есть, то я могу получить данные, и это работает, но как включить эти записи без какой-либо активности? Все мои данные находятся в одной таблице.PostgreSQL - Как получить пустые (нулевые) записи из одной таблицы?
Спасибо!
╔═════╦═════════════════════╦══════╗
║ SRV ║ DATE ║ FLAG ║
╠═════╬═════════════════════╬══════╣
║ 1 ║ 2013-01-01 08:10:12 ║ 4 ║
║ 1 ║ 2013-01-01 08:11:24 ║ 4 ║
║ 1 ║ 2013-01-01 08:12:01 ║ 5 ║
║ 1 ║ 2013-01-01 08:12:14 ║ 5 ║
║ 2 ║ 2013-01-01 08:20:44 ║ 4 ║
║ 2 ║ 2013-01-01 08:23:11 ║ 5 ║
║ 1 ║ 2013-01-01 08:24:09 ║ 4 ║
║ 1 ║ 2013-01-01 08:28:54 ║ 5 ║
║ 1 ║ 2013-01-01 08:30:01 ║ 4 ║
║ 3 ║ 2013-01-01 08:32:31 ║ 4 ║
║ 3 ║ 2013-01-01 08:32:45 ║ 4 ║
║ 1 ║ 2013-01-01 08:35:21 ║ 4 ║
╚═════╩═════════════════════╩══════╝
Я хочу получить количество флагов со статусом 4, за последние 10 минут в этом случае, сгруппированные по SRV. Если в указанный период не было флага 4, должна быть запись с SRV и значением NULL. В этом случае мой запрос должен возвращать:
╔═════╦═══════╦══╗
║ SRV ║ COUNT ║ ║
╠═════╬═══════╬══╣
║ 1 ║ 2 ║ ║
║ 2 ║ NULL ║ ║
║ 3 ║ 2 ║ ║
╚═════╩═══════╩══╝
Я был в состоянии сосчитать существующие флаги с помощью:
select srv, count(*)
from table1
where flag=4 and date >= now() - interval '10m'
group by svr
order by 1
Можете ли вы показать структуру вашей таблицы, пример данных и результата, а также запросы, которые вы уже пытались написать? –