Агрегатная функция для суммирования значений из нескольких строк в одну строку результатов - PullRequest
1 голос
/ 06 мая 2020

прошло несколько лет с тех пор, как я использовал функцию поворота Oracle SQL, и я не могу заставить свою работать в этом коротком примере.

Я хотел бы преобразовать несколько столбцов / строк из этого таблицу

ID   CLASS   NAME   WHEIGHT
1    2020    Tom    80
2    2020    Tim    100
3    2020    Ben    120

в эту единственную строку результатов:

CLASS    LISTAGG_NAMES    SUM_WHEIGHT
2020     Tom,Tim,Ben      300

Большое спасибо за помощь!

1 Ответ

1 голос
/ 06 мая 2020

Это не проблема "поворота". Вам не нужны отдельные столбцы для каждого значения. Вы просто хотите их объединить. Используйте listagg():

select class, listagg(name, ',') within group (order by weight) as names, sum(weight)
from t
group by class;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...