1

我需要一个查询来根据最大对列选择一行。在下表中,您将如何选择具有最高 VALUE1 的行以及在第一个结果集中具有最高 VALUE2 的行?

+----+---------+---------+
| ID | VALUE1  | VALUE2  |
+----+---------+---------+
|  1 |       1 |       1 |
|  2 |       2 |       1 |
|  3 |       5 |       4 |
|  4 |       4 |       1 |
|  5 |       4 |       3 |
|  6 |       4 |       5 |
|  7 |       5 |       1 |
|  8 |       4 |       2 |
|  9 |       4 |       6 |
| 10 |       4 |       8 |
| 11 |       5 |       3 |

在这种情况下,应该返回 ID = 3 的行。

4

2 回答 2

8
SELECT * FROM tableName ORDER BY Value1 DESC, Value2 DESC LIMIT 1
于 2013-10-08T09:33:48.563 回答
0

限制是这里的最佳选择,但如果您仍然想要其他方法,那么您可以使用子查询

SELECT * FROM tableName  where (Value1 + Value2) = (select max((Value1 + Value2))
from tableName) 
于 2013-10-08T10:18:29.087 回答