У меня есть эта таблица:
id operation phone_number package
1 Add 991 super_package no. 2
1 Delete 991 super_package no. 1
2 Add 902 super_package no. 3
2 Delete 902 super_package no. 1
2 Add 988 super_package no. 5
2 Delete 988 super_package no. 2
Я хочу запросить таблицу, чтобы она выглядела следующим образом:
id phone_number new_pkg old_pkg
1 991 super_package no. 2 super_package no. 1
2 902 super_package no. 3 super_package no. 1
3 988 super_package no. 5 super_package no. 2
для значения new_pkg устанавливается значение столбца пакета, если Операция add, а для значения old_pkg устанавливается значение столбца пакета, если для операции выбрано Delete.
все, что я мог сделать, это:
SELECT id,phone_number , LISTAGG(package, ', ') WITHIN GROUP (ORDER BY id) AS new_pkg
FROM table GROUP BY id;
результат
id phone_number new_pkg
1 991 super_package no. 2, super_package no. 1
2 902 super_package no. 3, super_package no. 1
3 988 super_package no. 5, super_package no. 2
любая помощь?