У меня есть таблица:
name | doc | filter
NAME1 | DOC1 | A1
NAME1 | DOC1 | B1
NAME1 | DOC1 | C1
NAME2 | DOC2 | A1
NAME2 | DOC2 | D1
NAME2 | DOC2 | C1
NAME3 | DOC3 | B1
NAME3 | DOC3 | A1
Итак, я создаю команду SELECT
:
SELECT name, doc, array_agg(filter) filter from table group by name, doc
, это возвращение:
name | doc | filter
NAME1 | DOC1 | {A1,B1,C1}
NAME2 | DOC2 | {A1,D1,C1}
NAME3 | DOC3 | {B1,A1}
Я пытаюсь создать команду SELECT
в предыдущей таблице с кодом ниже:
sum(case when array_agg(filter)::char like '%C1%' then 1 else 0 end) as "TOTAL"
Но я получаю ошибку:
вызовы агрегатных функций не могут быть вложенными
Как это решить? Если я хочу добавить еще один фильтр, как это:
sum(case
when array_agg(filter)::char like '%C1%' or array_agg(filter)::char like '%C2%'
then 1 else 0
end) as "TOTAL"`
Как это сделать?