SQL 按子查询分组

标签 sql group-by subquery max

我不完全理解子查询如何被外部查询访问,所以我需要一些帮助来解决这个问题。这是四个架构。

Movie(title, year, director, budget, earnings)
Actor(stagename, realname, birthyear)
ActedIn(stagename, title, year, pay)
CanWorkWith(stagename, director)

查找电影中表演收入最高的 Actor 的名字。 从我得到的情况来看,它要求找到每部电影收入最高的 Actor ……但转念一想,括号可能表明谁的收入最高,也许一对夫妇的收入相同。无论如何..

我有什么

SELECT A.realname
FROM ActedIn A
WHERE A.stagename IN ( SELECT A1.title, A1.year, MAX(pay)
                       FROM ActedIn A1
                       GROUP BY title, year )

我知道 WHERE A.stagename IN 完全错误,我只是不知道如何将其链接回来。

最佳答案

如果我很好理解的话,这应该足够了:

SELECT A.realname
FROM ActedIn A
WHERE pay = (SELECT MAX(pay) FROM ActedIn B WHERE B.stagename = A.stageman)

关于SQL 按子查询分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10988536/

相关文章:

mysql - 在选择子查询中使用 AVG 结果

mysql - 为什么这个简单的连接查询使用子查询会明显更快?

mysql - 如何在不知道类别有多深的情况下获取与类别相关的所有子类别。

python - 在 Pandas 中使用 groupby 时检查某些列的值

SQL Group by Modulo of Row Count

sql - 并排显示联合数据而不重复

mysql - 如何在 DBIx::Class 的 SELECT 部分使用子查询?

sql - 创建索引 View

sql - MySQL 子查询不工作,生成错误代码 1064

mysql - 更多的列有更少的数据还是更少的列有更多的数据?