Я знаю, что транспонирование (или поворот) w/sql является обычным вопросом, но я не смог точно определить, что я пытаюсь сделать в стек/google.oracle transpose на основе значений столбцов
Короче говоря, я хочу случай, когда/then без hardcoding все возможные значения столбца, потому что эти значения могут быть многочисленными и/или меняться со временем. Например,
id col val
1 a 65
1 b 34
1 c 25
2 a 67
2 c 22
...
цель состоит в том, чтобы свернуть с одной строкой для каждого отдельного идентификатора, с колоннами для каждой отдельной седловины
достаточно легко, когда значение цв являются статическим и небольшим, но когда десятки таких значений жестко кодируют каждый возможный пункт в заявлении дела, кажется трудным.
в псевдо коде, что я хочу сделать, это
select
for each attr in (select distinct col from table)
sum(case when col = attr then val end) as transposed_attr,
end for
from table
group by id
Но я неопытных с PL/SQL, так что я не знаю, как добиться этого в оракула.
Рекомендации?
извините, 9i. У меня нет стержня. –
@justincress - Тогда, как говорится в сообщении postesd, вы попадаете в версию CASE/DECODE. И если вам нужно повернуть 300 строк на 300 столбцов, вам потребуются 300 операторов CASE/DECODE. Сожалею. – MatBailie