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我早些时候公布的批次版本)