@LordOfARing

Как сгруппировать данные по нескольким столбцам, чтобы id не задваивались из-за разных значений в другом столбце?

Как можно изменить этот sql-запрос

select DISTINCT id, result, max (time)
from Table
GROUP BY id, result

Чтобы он выводил это:

id result max (time)
1 10 100
2 9 90
3 8 80
4 5 50

А не это:

id result max (time)
1 10 100
2 9 90
3 8 80
3 7 70
3 6 60
4 5 50

То есть в столбце Result хранятся несколько разных значений, для нескольких записей id3. Мне необходимо получить максимальное значение времени, т.е. в поле result должно быть 8, а в time 80.
Как можно переписать запрос? Желательно простыми командами (без оконных функций например First Value).
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
@romaro
https://dbfiddle.uk/?rdbms=postgres_14&fiddle=a21c...

select fid, result, time
from tbl where time in (select max(time) from tbl group by fid)
order by fid
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
rozhnev
@rozhnev Куратор тега SQL
Fullstack programmer, DBA, медленно, дорого
SELECT DISTINCT id, MAX(result), MAX(time)
FROM Table
GROUP BY id
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы