【问题标题】:how to fetch max rating MovieId voted by max number of users如何获取最大用户数投票的最大评分 MovieId
【发布时间】:2014-09-22 10:55:05
【问题描述】:

您好,我有一个名为 rating 的表,结构如下

userId int,movieId int,等级数,时间 varchar

我必须获取由最大用户投票的具有最大评分的movieId,用于exp

userId movieId 评分时间 0001、3、5.0、2312345
0001、5、3.0、2312323
0001、7、4.0、2312124
0002、2、3.0、2312453
0002、3、5.0、2312323
0002、7、3.0、2315642
0003、3、5.0、2312764
0004、3、4.0、2312146
0004、7、3.0、2312321

在这部电影中 3 被 3 个用户投票 5.0,这是最大用户数的最大评分。

如何使用 sql 查询来做到这一点

【问题讨论】:

  • 如果 movieId 1 的评分为 4.0,有 5 个用户,movieId 2 的评分为 5.0,有 4 个用户怎么办?

标签: mysql sql


【解决方案1】:

如果您想要一部电影,请进行聚合并使用order bylimit

select movieId, rating, count(distinct userId) as NumUsers
from rating
group by movieId, rating
order by rating desc, NumUsers desc
limit 1;

【讨论】:

    【解决方案2】:

    如何使用这个查询:

    SELECT movieId, rating, count(distinct userId) votecount
    from rating
    group by movieId, rating
    

    在这里,获得最高票数的人获胜。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-17
      • 1970-01-01
      • 2019-10-16
      • 1970-01-01
      • 1970-01-01
      • 2010-10-23
      • 2021-01-11
      • 1970-01-01
      相关资源
      最近更新 更多