2016-05-26 5 views
2

Мне нужно получить верхние строки из каждой группы, основываясь на максимальных значениях двух столбцов.Выберите верхние строки из каждой группы

Это таблица:

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; 
+0

Вы можете попробовать этот подход: 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

ответ

1

Это немного вложенными, но я думаю, что вам нужно два уровня подзапросов

select * from taggedshows 
where (tag_season_num, tag_episode_num) in 
    (select tag_season_num, max(tag_episode_num) from taggedshows 
    where (tag_series_id , tag_season_num) in 
    (select tag_series_id max(tag_season_num) from taggedshows 
    group by tag_seried_id) 
    group by tag_season_num) 
+0

HI, спасибо за ответ, но запрос не работает. Я предполагаю, что вы хотели бы включить where where tag_season_num 'select * from taggedshows где (taggedshows, tag_episode_num)'. В любом случае я исправил его и запрос все еще не работает – user3746480

+0

У меня есть ответ на вопрос. – scaisEdge

+0

Большое спасибо за ваш быстрый ответ. Я думаю, что это так :) – user3746480

Смежные вопросы