распространение дней и количества повторений каждого человека для каждого конкретного дня в postgresql - PullRequest
0 голосов
/ 13 мая 2018

у меня есть эта таблица в базе данных postgresql

id      name     time
1       poi      2018-05-13 08:45:48.846887
2       poi      2018-05-13 08:11:04.671437
3       roik     2018-05-14 16:32:04.671437
4       ceil     2018-05-14 17:38:04.671437
5       verk     2018-05-14 19:46:04.671437
6       roik     2018-05-16 08:21:04.671437
7       poi      2018-05-16 11:00:04.671437
8       roik     2018-05-18 14:40:08.671437
9       roik     2018-05-18 17:21:09.671664
10      verk     2018-05-13 08:46:04.671437
11      sant     ...
12      sant      ...
13      dmk       ...
14      roik      ...
15      poi       ...
...     ....     ...

Я хочу иметь такую ​​таблицу:

name 2018-5-1 2018-5-2 2018-5-3 2018-5-4 2018-5-5 2018-5-6 2018-5-7 2018-5-8 2018-5-9 2018-5-10 2018-5-11 2018-5-12 2018-5-13 2018-5-14 ...
poi  0        3         3         7
roik 0        4         2         1
verk 0        2         0         9
sant 1        0         8         2
dmk  0        3         ...
...

Эти цифры представляют количество повторений каждого человека для каждого конкретного дня как я могу это сделать? спасибо заранее

1 Ответ

0 голосов
/ 13 мая 2018

Это не совсем то, что вы хотите, но очень похоже на. Вам просто нужно перевести значения столбца «дата» в сам столбец, но вы можете легко сделать это на клиенте после того, как запросите нужные даты.

https://www.db -fiddle.com / ж / 7r4AG9MV9zeZEjoU77fCfk / 2

SELECT Test.name, SUM(CASE WHEN date(Test.time) = dates.date THEN 1 ELSE 0 END), dates.date FROM Test CROSS JOIN
(SELECT DISTINCT(date(time)) as date FROM Test) as dates
GROUP BY Test.name, dates.date
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...