Как использовать pivote, чтобы узнать максимальное значение из строки с тремя столбцами, то есть максимальное значение из трех столбцов - PullRequest
1 голос
/ 15 мая 2019

У меня есть следующая таблица с именем ' Таблица ',

enter image description here

Где я хочу получить результат, как в следующей таблице, где, если выВозьмите первую строку и последние три столбца. Я хочу, чтобы значение было 56.

enter image description here

Я хочу использовать SQL-серверный код для таблицы выше ' Таблица 'и результат будет второй таблицей.Здесь MaxV-1 и MaxV-2 зависят от столбца ' Number '. MaxV-1 является максимальным значением из FirstV , SecondV и ThirdV , когда Number равно 1 ита же логика для MaxV-2 .

1 Ответ

4 голосов
/ 15 мая 2019

Один из методов - это сводное и условное нарастание:

select t.model,
       max(case when t.number = 1 then t.pro_code end) as pro_code_1,
       max(case when t.number = 2 then t.pro_code end) as pro_code_2,
       max(case when t.number = 1 then v.v end) as max_val_1,
       max(case when t.number = 2 then v.v end) as max_val_2
from t cross apply
     (select max(v.v) as v
      from (values (t.firstv), (t.secondv), (t.thirdv)) v(v)
     ) v
group by t.model;
...