SQL запрос для вставки записей за последние 7 дней, сгруппированных по дням - PullRequest
0 голосов
/ 16 июня 2020

У меня есть таблица с двумя очень похожими таблицами, в которых хранятся purchases и downloads, они обе выглядят одинаково с идентификатором и датой

id  date                          

1   2020-06-15 18:25:27.415548+01
2   2020-06-15 11:03:30.157502+01
3   2020-06-15 17:09:15.592209+01
4   2020-06-14 18:29:18.332623+01
5   2020-06-13 18:09:31.990473+01
... many more rows ...

Я хотел бы иметь возможность выполнить Postgres запрос, который возвращает количество всех покупок и загрузок, вставленных за последние 7 дней, сгруппированных по дням. Идеальный ответ будет выглядеть так:

date          purchase_count    download_count

2020-06-13    37                64
2020-06-14    44                56
2020-06-15    34                63
2020-06-16    41                72
2020-06-17    30                40
2020-06-18    42                55
2020-06-19    9                 22

1 Ответ

1 голос
/ 16 июня 2020

Один метод использует агрегирование с full join:

select dte, coalesce(d.downloads, 00) as downloads, coalesce(p.purchases, 0) as purchases
from (select date_trunc('day', date) as dte, count(*) as downloads
      from downloads
      group by dte
     ) d full join
     (select date_trunc('day', date) as dte, count(*) as purchases
      from purchases
      group by dte
     ) p
     using (dte)
order by dte;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...