@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).
  • Вопрос задан
  • 81 просмотр
Решения вопроса 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
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
25 апр. 2024, в 11:02
5000 руб./за проект
25 апр. 2024, в 10:42
150000 руб./за проект
25 апр. 2024, в 10:41
2000 руб./за проект