у меня есть таблица 1, показанная ниже
Name role F1 status1 status 2
sam player yes null null
sam admin yes null null
sam guest no x x
Я хочу, чтобы результат был
Name role status1 status 2
sam admin,player x x
я сделал запрос, чтобы list_agg роль в одной строке. но статус нулевой для Сэма, чтобы показать, когда F1 = 'да'
запрос, который я использовал
select name,list_agg(role,',') within group(order by name),max(status1),max(status2)
from table 1 where F1='yes'
group by name
но я получаю что-то вроде этого
name role status1 status2
sam admin,player null null
я хочу, чтобы где работать только в столбце роли, а max (status1) был в статусе 1, то есть «x». пожалуйста, помогите мне. спасибо
water-access
, а неmin(water-access)
илиmax(water-access)
и т.п. - person Thorsten Kettner   schedule 27.05.2016LISTAGG(Role, ',')
наLISTAGG(CASE WHEN F1 = 'yes' THEN Role END, ',')
, чтобы добавлять роли в строку только в том случае, если F1 имеет значение «да». - person Thorsten Kettner   schedule 27.05.2016