代码之家  ›  专栏  ›  技术社区  ›  Ben G

层次最大值

  •  0
  • Ben G  · 技术社区  · 15 年前

    当考虑两个字段时,是否有一种方法可以获得一个具有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在列A上都是最大值,但是在列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 回复  |  直到 15 年前
        1
  •  1
  •   Brian Hooper    15 年前

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

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