【发布时间】:2015-06-23 12:30:46
【问题描述】:
我有一个包含几列的表格,对于每一行我想要最大值:
-- Table:
+----+----+----+----+----+
| ID | C1 | C2 | C3 | C4 |
+----+----+----+----+----+
| 1 | 1 | 2 | 3 | 4 |
| 2 | 11 | 10 | 11 | 9 |
| 3 | 3 | 1 | 4 | 1 |
| 4 | 0 | 2 | 1 | 0 |
| 5 | 2 | 7 | 1 | 8 |
+----+----+----+----+----+
-- Desired result:
+----+---------+
| ID | row_max |
+----+---------+
| 1 | 4 |
| 2 | 11 |
| 3 | 4 |
| 4 | 2 |
| 5 | 8 |
+----+---------+
如果有两到三列,我会写在iif 或CASE 语句中。
select ID
, iif(C1 > C2, C1, C2) row_max
from table
但是随着列的增多,这很快就会变得很麻烦。有没有一种很好的方法来获得这个逐行最大值?在 R 中,这被称为“并行最大值”,所以我喜欢类似
select ID
, pmax(C1, C2, C3, C4) row_max
from table
【问题讨论】: