PostgreSQL динамическая группировка по дате c столбцы - PullRequest
0 голосов
/ 08 мая 2020

У меня есть такая таблица

CREATE TABLE public.conferimenti
(
    id smallint NOT NULL,
    datetime timestamp without time zone NOT NULL,
    weight numeric(10,2) NOT NULL DEFAULT 0.0,
    type smallint NOT NULL
)

вот так

Я хочу получить СУММ (вес) по каждому типу, сгруппированному по дням, чтобы построить график таймсерий с наилучшей производительностью

SELECT c.datetime::date, SUM(weight) FROM conferimenti AS c
WHERE c.datetime >= '2019-01-01' AND c.datetime <= '2019-12-31' AND type = 1
GROUP BY c.datetime::date

Эта группа по дням, но только тип = 1 .. мне нужен для каждого типа (есть 10-15 разных типов)

1 Ответ

1 голос
/ 09 мая 2020

Конечно, вы получаете только тип 1, это часть предложения WHERE. Переместите его тип в список выбора и сгруппируйте по:

select c.datetime::date
     , c.type 
     , sum(weight) total_weight
  from c.conferimenti as c
 where c.datetime >= '2019-01-01' 
   and c.datetime <= '2019-12-31'  
 group by c.datetime::date, c.type;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...