分层MAX

时间:2010-08-12 07:38:32

标签: sql mysql max mysql-logic

当考虑两个字段时,有没有办法获得具有MAX()的行,从而使其中一个优先。例如

ID     Column_A     Column_B
----------------------------
1        1              3
2        3              2
3        2              2
4        3              1

会返回

ID     Column_A     Column_B
----------------------------
2        3              2

因为ID的2和4在Column_A上都是MAX,但在Column_B上#2“获胜”。

我希望这个查询要做什么,在伪代码中:

If (It's the MAX on A, tied with nothing)
  Return it
Else If (It's tied for MAX on A and it's MAX [or tied] on B)
  Return it

1 个答案:

答案 0 :(得分:1)

你可以试试......

SELECT *
    FROM mytable
    ORDER BY Column_A DESC, Column_B DESC
    LIMIT 1;

(如果我理解正确的话)。

编辑马修普尔顿善意地建议。