0
我有這樣的一個表:SQL:選擇一個Colume的最高值的行對每個值
Id Col1 Col2 ...
1 NULL 1000
1 x 1001
1 y 1002
2 x 2000
2 y 2001
2 NULL 2002
3 z 3000
....
我想與ID = 1或2,其中選擇的所有行:
- COL1是NULL
OR
- COL1不爲空的d col2的是最大用相同的ID
行中那麼結果應該是
(1, NULL 1000)
(1, y 1002)
(2, y 2001)
(2, NULL 2002)
因爲我能想到下面的SQL語句的第一個條件:
SELECT * FROM my_table WHERE Id IN (1, 2) and action IS NULL
對於第二個條件,如果我用這樣的東西:
SELECT * FROM my_table WHERE Id IN (1, 2) and action IS NOY NULL ORDER BY Col2 LIMIT1
在Id = 1和Id = 2的所有結果中,它只會給我一行最大Col2。
如何爲每個Id組獲得每列最大Col2?有一種使用GROUP BY的感覺,但不知道如何應用它。請給我一個提示!謝謝!
(這基本上是這個question我早些時候公佈的批次版本)