Я застрял на чем-то, что, по-моему, должно быть довольно простым, я искал какое-то время в теге Greatest-N-Per-Group и вообще google-fu и не могу найти что-то, что вполне подходит.SQL Greatest N Per Group с дополнительными критериями
У меня есть запрос, который (в упрощенной форме) принимает таблицу данных и выполняет на ней агрегации/группировки, но я хочу ввести уникальный идентификатор, основанный на максимальном значении другого столбца.
Чтобы дать пример того, что значит:
Uniq Value Time Person
1 6 180 Bob
2 8 170 Bob
3 4 45 Claire
4 4 90 Claire
Текущий запрос будет:
SELECT Person, SUM(Time) AS Duration
FROM Table
GROUP BY Person
Что мне нужно, чтобы добавить к этому результирующий набор является Uniq и значение наибольшего значения в человек, т.е. набор результатов будет выглядеть так:
Person Duration Value Uniq
Bob 350 8 2
Claire 135 4 3
Первоначально я думал, что я мог бы присоединиться первые результаты, установленные для подзапроса, содержащего максимальное число (значение), лицо и Uniq, но потом я бегу по проблеме возвращения один результат на Uniq, а не один для человека, но только uniq, где строка является максимальным значением.
Любая помощь будет высоко оценена.
Какие СУБД вы используете? Postgres? Oracle? –