我有一個表有幾列,每一行我想最大:逐行最大
-- 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
看看支點HTTP: //stackoverflow.com/questions/13372276/simple-way-to-transpose-columns-and-rows-in-sql –