postgresql - различается только в одном столбце

У меня есть стол, который называется съедобным. У него есть такие столбцы, как тип, имя.

тип столбца имеет fruit, veggie, veggie, fruit, veggie ценности.

имя столбца имеет apple, brinjal, carrot, banana, cabbage.ценности

Я хочу вывод, как, тип столбца должен отображать только 2 строки и имя должно отображать все значения.

Это должно понравиться ниже:

съедобный

Я пробовал приведенный ниже запрос, но это не так, как я ожидал:

select distinct on (type) type, name from eatable;

Помоги мне!!

1 ответ

Решение

Вы можете использовать агрегатные функции PostgreSQL

SELECT type
    ,string_agg(NAME, ',') "name"
FROM eatable
GROUP BY type;

Результат:

type   name  
text   text                 
------ ---------------------- 
fruit  apple,banana           
veggie brinjal,carrot,cabbage 

ИЛИ ЖЕ

SELECT type
    ,array_agg(name) "name"
FROM eatable
GROUP BY type;

Результат:

type   name  
text   text[]                   
------ ------------------------ 
fruit  {apple,banana}           
veggie {brinjal,carrot,cabbage} 

демонстрация

Другие вопросы по тегам