Я пытаюсь объединить несколько строк с одинаковыми идентификаторами в один.Слияние нескольких строк в один, используя Postgresql
Моя сырым таблица выглядит следующим образом:
ID | person_id | eur_amount
1 3 200
1 2 100
2 3 80
2 2 100
Вывод должен выглядеть следующим образом:
ID | person_1 | eur_amount_1 | person_2 | eur_amount_2 |
1 3 200 2 100
2 3 80 2 100
Максимальное количество человек такой же. Я уже пытался решить его с помощью нескольких операторов JOIN и функции crosstab(), как указано здесь PostgreSQL Crosstab Query.
Но я не мог найти решение для этого - кто-нибудь знает хороший способ добиться желаемого результата?
Заранее благодарен!
Мой первый вопрос: почему вы хотите это сделать? Но я отвлекся ... личный_ид уже известен заранее (IE в запросе только когда-либо ищет personID 2 и 3), а у двух человек верхний предел столбцов или у вас будет больше? Похоже, вы пытаетесь заставить SQL сделать что-то, о чем должен беспокоиться отчет GUI. Должен также спросить, что определяет, какое значение переходит в person_1 vs person_2, это только порядок строк? – Twelfth
'select id, array_agg (строка (person_id, eur_amount) order by person_id desc) как perdata из группы my_raw_rable по id;' – Abelisto