2016-08-18 5 views
0

Я хочу иметь для каждого app Я хочу хранить массив series, где каждый элемент представляет собой сумму conversations, созданный в этот день.Вложенные агрегатные столбцы в массив

Любая идея, как это можно сделать? Это то, что я получил до сих пор

with week as 
(
    SELECT now()::date - d AS day FROM generate_series (0, 90) as d 
) 
select 
    a.id, week.day, count(extract(dow from c.inserted_at)) 
from week 
left join conversations c on week.day = c.inserted_at::date 
left join apps a on c.app_id = a.id 
group by a.id, week.day 
order by week.day; 

ответ

0

Если вы хотите суммировать данные до определенного уровня. Ваша группа определяет уровень агрегации. У вас есть группа Id и Week.day. Если ID является уникальным значением идентификатора записи. Вы не группируете или не суммируете на уровне Week.day, вы делаете это на уровне id. Вам нужно удалить идентификатор из своей группы и просто иметь week.day в вашей группе для агрегирования на дневной уровень.

+0

Можете ли вы привести пример? Я не могу удалить идентификатор, потому что иначе он жалуется, что он не используется в агрегированной функции – Tarlen