Postgres версия 9.4.18, PostGIS версия 2.2.
Я удалил некоторые детали таблиц из этого вопроса, потому что сомневаюсь, что это необходимо для ответа на вопрос. Я могу добавить эти детали обратно, если необходимо.
Желаемый результат:
Я хочу общее количество для каждой недели года и часа дня (от 0100 до 5223). Я могу успешно сгенерировать серию от 0100 до 5223 (на самом деле до 5300), и я могу получить общее количество для каждой недели года и часа дня индивидуально, но я не могу объединить запросы так, чтобы недели года / часы дня с нулевым графством все еще показывались. Я хочу объединить результат подсчета с generate_series (и в идеале разделить этот результат на 30), чтобы получить что-то вроде ниже.
MM-DD | count_not_zero | count_not_zero_divided_by_30
-------+----------------+----------------------------
0100 | 10 | 33.3
0101 | 0 | 0
0102 | 0 | 0
...
0123 | 0 | 0
0200 | 3 | 10
0201 | 10 | 33.3
...
5223 | 20 | 66.6
Вот мои отдельные запросы, которые работают ..., которые я хочу объединить:
SELECT DISTINCT f_woyhh(d::timestamp) as woyhh
FROM generate_series(timestamp '2018-01-01', timestamp '2018-12-31', interval '1 hour') d
GROUP BY woyhh
ORDER by woyhh asc;
SELECT dt, count(*) FROM
(SELECT f_woyhh((time)::timestamp at time zone 'utc' at time zone 'america/chicago')
AS dt,
EXTRACT(YEAR FROM time) AS ctYear, count(*)
AS ct
FROM counties c
INNER JOIN ltg_data d ON ST_contains(c.the_geom, d.ltg_geom)
WHERE countyname = 'Milwaukee' AND state = 'WI' AND EXTRACT(YEAR from time) > '1987' GROUP BY dt, EXTRACT(YEAR from time))
AS count group by dt;
Результат второго запроса выше (и пропускает нулевой счет dt, чего я не хочу):
dt | count
-------+-------
0100 | 10
0104 | 5
0108 | 4
...
Вывод:
Я пытаюсь объединить вышеупомянутые рабочие отдельные запросы в один запрос, который дает результат три в три столбца - woyhh, count и count, деленные на 30. И я хочу включить woyhh, которые имеют ноль в округе, чтобы У меня есть полный набор woyhh.
Спасибо за любую помощь !!