sql - 如何在 SQL 中选择
问题描述
我正在使用 2 个表,其中一个是 movie_score,其中包含 id、name 和 score。我有另一个表是 movie_cast,其中包含 mid、cid 和 name。Mid 是电影 ID,而 cid 是演员 ID。我必须做的问题如下:
查找平均电影得分最高的前 10 名(不同)演员。输出列表必须按分数排序(从高到低),然后,如果/当它们具有相同的平均分数时,按字母顺序按演员名称排序。搜索不得包括:(a) 得分低于 50 的电影和 (b) 出现在少于 3 部电影中的演员(同样,仅计算得分至少为 50 的电影的出现次数)。(预期输出:cid、cname、平均分)
我试图将命令放在一起,但到目前为止,这就是我所能得到的:
SELECT DISTINCT movie_cast.cid, movie_cast.cname, FROM movie_score INNER JOIN movie_cast ON movie_score.id=movie_cast.mid ORDER BY cname LIMIT 10;
movie-name-score.txt 与 movie_score 一起使用:
.txt 文件示例
9、《星球大战3:西斯的复仇3D》,80
24214,“纳尼亚传奇:狮子、女巫和魔衣橱”,76
1789 年,“世界大战”,74
10009,《星球大战2:克隆人的进攻3D》,67
771238285,“温暖的身体”,-1
770785616,“Z世界大战”,-1
771303871,“战争女巫”,89
771323601,《世界大战真实故事》,-1
movie-cast.txt 与 movie_cast 一起使用:
例子:
9,162652153,“海登·克里斯滕森”
9,162652152,“伊万·麦格雷戈”
9,418638213,“肯尼贝克”
9,548155708,“格雷姆·布伦德尔”
9,358317901,“杰里米·布洛克”
9,178810494,“安东尼丹尼尔斯”
9,770726713,“奥利弗·福特·戴维斯”
9,162652156,“塞缪尔·杰克逊”
9,162655731,“詹姆斯·厄尔·琼斯”
我希望有类似的输出:
162655731,“詹姆斯·厄尔·琼斯”,他们看过的电影的平均分
有谁知道创建此命令的最佳方法?
解决方案
推荐阅读
- performance - 使用 EmEditor 优化列数据中的多元素排序/去重
- mongodb - 如何从具有两个条件的数组中查询元素(MongoDB)
- python - reverse 和 reverse_lazy 的区别?
- java - 将 keycloak 与 Spring Security 集成
- r - 如何使所有数据点颜色相同?
- entity-framework-core - 如何在没有自定义 sql 的情况下在 EFCore 3.1 中选择常量值
- prolog - 寻找最大最小值集
- r - 在 Shiny 中观察多个事件的正确方法是什么?
- reactjs - 无法在 React 中配置补丁请求
- python - 无法使用线程在后台运行 python http 服务器