Hi Alex,
On Thu, Apr 16, 2020 at 10:36 AM Alex Magnum <magnum11200@xxxxxxxxx> wrote:
Hi,I have a simple table with singup timestampsWhat I would like to do is to create a table as shown below that displays the counts per our for the past n dates.I can do this with a function but is there an easy way to use recursive queries?Counts per hour for given dateHR 2020-04-01 2020-04-02 ... 2020-04-10
00 38 33 36
01 33 26 18
02 26 36 17
03 36 18 10
04 18 17 3
05 17 10 3
06 10 3 6
07 3 3 10
. 3 6 13
. 6 10 22
. 10 13 12
22 13 22 9
23 22 11 8Thanks for any suggestions.A
You don't need subqueries. The WHEN statement can help you in this case (a bit tedious to write but fast to run):
WITH q AS (select
date_part('hour', ts) AS hr, ts::date AS mydate FROM your_table_or_query)
SELECT hr,
sum(CASE WHEN mydate = '2020-04-01'::date THEN 1 ELSE 0 END),
sum(CASE WHEN mydate = '2020-04-02'::date THEN 1 ELSE 0 END),
...
FROM q ORDER BY hr;
Hope it helps
--
Olivier Gautherot
Tel: +33 6 02 71 92 23