我需要一个查询来根据最大的一对列选择一行。在下表中,您将如何选择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的行。
答案 0 :(得分:8)
SELECT * FROM tableName ORDER BY Value1 DESC, Value2 DESC LIMIT 1
答案 1 :(得分:0)
限制是此处的最佳选择,但如果您仍需要其他方法,则可以使用子查询
SELECT * FROM tableName where (Value1 + Value2) = (select max((Value1 + Value2))
from tableName)