【问题标题】:trouble query finding the entry with the highest number查找编号最高的条目的问题查询
【发布时间】:2012-04-01 09:35:49
【问题描述】:

我需要一些帮助查询。对于我的数据库中至少有一个评分的每一部电影,我需要找到该电影获得的最高星级。我希望查询返回的数据是电影、标题和按电影标题排序的星数。

我正在使用的表如下:

Movie(mID int, title text, year int, director text);
Reviewer(rID int, name text);
Rating(rID int, mID int, stars int, ratingDate date);

【问题讨论】:

  • 您想要所有电影,其中至少一条评论的得分等于迄今为止收到的最高分?
  • 每部电影都有不同的评分(星级)。我想收到每部电影的明星最多的电影。例如,泰坦尼克号有两个评级,一个是四星,一个是五星。我希望查询只显示带有五颗星的条目,因为它是这部电影中星星最多的条目

标签: sql


【解决方案1】:
SELECT
  Movie.*,
  Rating.Stars
FROM
  Movie
INNER JOIN
  Rating
    ON Movie.mid = Rating.mid
WHERE
  Rating.Stars = (SELECT MAX(Stars) FROM Rating)

(哇,在 iPhone 上很难做到这一点。)

【讨论】:

    【解决方案2】:

    你在这里:

    select m.title, max(stars) 
    from movie m join rating r on (m.mid = r.mid)
    group by m.mid, m.title
    order by m.title;
    

    【讨论】:

    • 我需要显示每部电影的每一个出现次数最多的明星
    • 这似乎可行,但有人可以对此处使用的 GROUP BY 语句的作用提供进一步的解释。没有它,查询不会返回我所追求的正确信息。
    猜你喜欢
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    相关资源
    最近更新 更多