Иерархический Макс
Есть ли способ получить строку, которая имеет 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
Потому что оба идентификатора 2 и 4 являются MAX на Column_A, но #2 "выигрывает" на Column_B.
Что бы я хотел, чтобы этот запрос делал в псевдокоде:
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 ответ
Решение
Вы могли бы попробовать...
SELECT *
FROM mytable
ORDER BY Column_A DESC, Column_B DESC
LIMIT 1;
(если я правильно понял вопрос).
Отредактировано, как любезно предложил Мэтью Пурдон.