Учитывая простую таблицу:
ColumnWhereIn ColumnWhere ColumnSearched
A 1234 1
A 1234 2
B 1234 3
B 1234 4
C 1234 5
C 1234 6
Я хотел бы найти наибольшее значение ColumnSearched
. Итак, ожидаемый результат:
{A: 2, B: 4, C: 6}
Я попробовал следующий запрос:
SELECT mt.ColumnSearched AS cs, mt.ColumnWhereIn AS cwi FROM MyTable mt
WHERE (mt.ColumnSearched, mt.ColumnWhereIn) IN
(SELECT MAX(ColumnSearched), ColumnWhereIn FROM MyTable
WHERE ColumnWhere = 1234
AND ColumnWhereIn IN ('A', 'B', 'C')
GROUP BY ColumnWhereIn)
Но он не возвращает никаких записей. Очевидно, что я мог бы просто выполнить три выбора, как это:
SELECT MAX(ColumnSearched) FROM MyTable
WHERE ColumnWhere = 1234 AND ColumnWhereIn = 'A'
Но мне было интересно, есть ли более чистое решение.