Как выбрать несколько строк со значением столбца Max, сгруппированным по другому столбцу? - PullRequest
0 голосов
/ 03 августа 2010

Я хочу получить фильм, имя персонажа и посещения из 4 строк (*), имеющие максимальную группу значений "Посещения" по фильмам.

Мой стол (D) такой:

movie  character_name  Visits
1      Owen Lars      1
1      Obi-Wan Kanobi  2
1      Luke Skywalker  3*
2      Princess Leia  2
2      Luke Skywalker  3*
2      R2-D2          3*
3      Jabba the Hutt  1
3      Han Solo      2
3      Luke Skywalker  4*

Лучшее кодирование, которое я могу придумать, это

select * FROM D
group by D.movie
HAVING max(Visits)

Но я просто не могу получить правильные строки>

Может кто-нибудь сказать мне, как я должен пересмотреть это? Большое спасибо !!

1 Ответ

1 голос
/ 03 августа 2010
SELECT
    D.*
FROM
    D
    INNER JOIN
(
    SELECT
        MOVIE
        ,   MAX(VISITS) AS VISITS
    FROM D
    GROUP BY MOVIE) F ON D.MOVIE = F.MOVIE AND D.VISITS = F.VISITS
...