Учитывая:
table 'thing':
age
---
3.4
3.4
10.1
40
45
49
Я хочу посчитать количество вещей для каждого 10-летнего диапазона, например,
age_range | count
----------+-------
0 | 2
10| 1
20| 0
30| 0
40| 3
Этот запрос близок:
SELECT FLOOR(age / 10) as age_range, COUNT(*)
FROM thing
GROUP BY FLOOR(age / 10) ORDER BY FLOOR(age / 10);
Вывод:
age_range | count
-----------+-------
0 | 1
1 | 2
4 | 3
Тем не менее, он не показывает мне диапазоны, которые имеют 0 отсчетов.Как я могу изменить запрос таким образом, чтобы он также отображал диапазоны между 0 счетами?
Я нашел похожие вопросы о стековом потоке для подсчета диапазонов, некоторые для 0 счетчиков, но они связаны с необходимостью указать каждый диапазон (либо жесткий-кодирование диапазонов в запросе или помещение диапазонов в таблицу).Я бы предпочел использовать общий запрос, подобный приведенному выше, где мне не нужно явно указывать каждый диапазон (например, 0-10, 10-20, 20-30, ...).Я использую PostgreSQL 9.1.3.
Есть ли способ изменить приведенный выше простой запрос, включив в него 0 счетчиков?
Подобные:
Oracle: как "группировать"по диапазону?
Получить распределение частоты десятичного диапазона в MySQL