#postgresql
#postgresql
Вопрос:
Я застрял с созданием столбца, в котором будут отображаться агрегированные цифры для количества созданных контактов.
Я хотел бы добиться того, что видно в столбце C
SELECT x.date_period, count(x.vid) contacts FROM
(
SELECT c.firstname as owner, c.vid, to_char(c.properties__createdate__value::date, 'IYYYIW') as date_period
FROM "hmy"."contacts" as c
) x
group by x.date_period
Есть идеи?
Спасибо!
Комментарии:
1. Мне трудно понять ваш вопрос, потому что ваш ожидаемый результат, похоже, на самом деле не соответствует запросу, который отображается под ним. Можете ли вы синхронизировать все данные в вашем вопросе?
2.
sum(c.vid) over (order by properties__createdate__value)
?3. Прочитайте о функциях окна и
OVER()
: doc4. Я обновил код, чтобы лучше показывать, что у меня есть на данный момент. Не повезло с суммой (c.vid) больше (порядок по c.properties__createdate__value). Я полагаю, что я должен использовать это в подзапросе?
Ответ №1:
Я полагаю, вы можете просто заменить count(x.vid)
на sum(x.vid) OVER(ORDER BY properties__createdate__value)
.
Вот SQLFiddle, реализующий идею. Я создал таблицу, которая копирует ваш пример таблицы. Если у вас есть первые два столбца построенного примера, вы должны иметь возможность применить к нему эту строку для создания текущего итога.