Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / string_agg по двум столбцам / 5 сообщений из 5, страница 1 из 1
17.07.2018, 16:17
    #39675139
VladRost
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string_agg по двум столбцам
Добрый день!
Пусть есть таблица, две ее колонки
яблоко зеленое
яблоко красное
груша красная
слива
...
Рейтинг: 0 / 0
17.07.2018, 16:19
    #39675140
VladRost
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string_agg по двум столбцам
Можно ли выбрать при помощи string_agg сразу по двум столбцам?
чтобы получился список: яблоко зеленое, яблоко красное, груша зеленая и т.д.

Сорри, что то первое сообщение само улетело, не успел дописать
...
Рейтинг: 0 / 0
17.07.2018, 16:28
    #39675150
VladRost
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string_agg по двум столбцам
Что то не найде где здесь редактировать или удалить свое же сообщение :(
Чуть подробнее.
Таблица чуть сложнее

вид тип цвет
фрукт яблоко зеленое
фрукт яблоко красное
фрукт груша зеленая

SELECT вид, string_agg (тип, ', ')
GROUP BY вид

получим от второго аргумента - яблоко, груша.
а надо получить яблоко зеленое, яблоко красное, груша зеленая.
Возможно это при помощи string_agg ?
...
Рейтинг: 0 / 0
17.07.2018, 16:34
    #39675157
Павел Лузанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string_agg по двум столбцам
VladRost,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
with t (col1, col2, col3) as (values 
    ('фрукт', 'яблоко', 'зеленое'), 
    ('фрукт', 'яблоко', 'красное'), 
    ('фрукт', 'груша', 'красная'), 
    ('фрукт', 'слива', ''),
    ('овощ', 'помидор', 'красный')
) 
    select string_agg(t.col2||' '||t.col3, ', ') from t group by t.col1;
                      string_agg                       
-------------------------------------------------------
 яблоко зеленое, яблоко красное, груша красная, слива 
 помидор красный
...
Рейтинг: 0 / 0
17.07.2018, 16:44
    #39675163
VladRost
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
string_agg по двум столбцам
Павел ЛузановVladRost,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
with t (col1, col2, col3) as (values 
    ('фрукт', 'яблоко', 'зеленое'), 
    ('фрукт', 'яблоко', 'красное'), 
    ('фрукт', 'груша', 'красная'), 
    ('фрукт', 'слива', ''),
    ('овощ', 'помидор', 'красный')
) 
    select string_agg(t.col2||' '||t.col3, ', ') from t group by t.col1;
                      string_agg                       
-------------------------------------------------------
 яблоко зеленое, яблоко красное, груша красная, слива 
 помидор красный




ОНО!!!! Спасибо большое! Я знал, что должно быть!
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / string_agg по двум столбцам / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]