如何使用数据透视表从三列的行中找出最大值,即三列中的最大值

时间:2019-05-15 13:55:12

标签: sql sql-server pivot pivot-table

我有一个名为“ ”的表,

enter image description here

我想要的结果如下表所示,如果您采用第一行和最后三列,我希望值是56。

enter image description here

我希望上面的表“ ”的sql server代码和结果成为第二个表。在这里,MaxV-1和MaxV-2取决于“ Number ”列。 MaxV-1 Number FirstV SecondV ThirdV 中的最大值等于1,并且 MaxV-2 的逻辑相同。

1 个答案:

答案 0 :(得分:3)

一种方法是毫无条件地进行附条件:

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;