SELECt g, a, b, v FROM ( SELECt *, @rn := IF(g = @g, @rn + 1, 1) rn, @g := g FROM (select @g := null, @rn := 0) x, tab ORDER BY g, a desc, b desc, v ) X WHERe rn = 1;
单通。在我看来,所有其他解决方案都为O(n ^ 2)。

SELECt g, a, b, v FROM ( SELECt *, @rn := IF(g = @g, @rn + 1, 1) rn, @g := g FROM (select @g := null, @rn := 0) x, tab ORDER BY g, a desc, b desc, v ) X WHERe rn = 1;
单通。在我看来,所有其他解决方案都为O(n ^ 2)。