如何选择具有按另一列分组的最大列值的多行?

发布于 2024-09-13 03:32:00 字数 475 浏览 4 评论 0原文

我想要获取电影、角色名称以及按电影分组具有最大“访问”值的 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)

但我就是无法获得正确的行>

谁能告诉我应该如何修改? 非常感谢!!

I want to get the movie, character_name, and Visits of the 4 rows(*) having the max "Visits" value group by movie.

My table (D) is like this:

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*

The best coding I can think of is

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

But i just can't get the right rows >

Can anyone tell me how I should revise it?
thanks so much!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怪我鬧 2024-09-20 03:32:00
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
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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文