Мне нужно получить верхние строки из каждой группы, основываясь на максимальных значениях двух столбцов.Выберите верхние строки из каждой группы
Это таблица:
tag_series_id | tag_season_num | tag_episode_num
269653 2 24
269653 3 1
269653 3 2
269653 3 3
281593 1 9
281593 1 11
281593 1 10
Набор результатов должен быть запись с максимальным tag_season_num
и tag_episode_num
. tag_season_num
должен иметь более высокий приоритет.
Набор результат должен быть таким:
tag_series_id | tag_season_num | tag_episode_num
269653 3 3
281593 1 11
Вот некоторые из моих неудачных попыток:
SELECT tag_series_id, tag_season_num, tag_episode_num, tag_watch_status
FROM taggedshows WHERE
GROUP BY tag_series_id, tag_season_num
ORDER BY tag_season_num desc, tag_episode_num desc;
SELECT tag_series_id, tag_season_num, tag_episode_num
FROM (SELECT * from taggedshows
ORDER BY tag_series_id, tag_season_num desc, tag_episode_num desc) x
GROUP BY tag_series_id;
SELECT tag_series_id, MAX(tag_season_num), MAX(tag_episode_num)
FROM taggedshows
GROUP BY tag_series_id;
Вы можете попробовать этот подход: SELECT distinct ts.tag_series_id, (выберите MAX (tag_season_num) от taggedshows, где tag_serie_id = ts.tag_serie_id), как tag_season_num, (выберите MAX (tag_episode_num) от taggedshows, где tag_serie_id = ts.tag_serie_id и tag_season_num = ts.tag_season_num) ОТ taggedshows как TS – Alejandra