SQL艰难查询

Geo*_*rge -4 sql

我试图填补考试,这些是一些最艰难的例子

Movie(title, year, director, budget, earnings)
Actor(stagename, realname, birthyear)
ActedIn(stagename, title, year, pay)
CanWorkWith(stagename, director)
Run Code Online (Sandbox Code Playgroud)

对于2006年在电影中扮演角色的每个演员,在他们演过的所有电影中找到他们的舞台名称和总薪酬(即包括那些不在2006年的电影).

对于每个可以与至少5位演员合作的导演,可以找到导演每年制作电影时制作的电影总数.

Jon*_*ler 6

你需要沉迷于一些TDQD - 测试驱动的查询设计.

对于第一个问题:

  • 你如何列出2006年在电影中工作的演员?
  • 鉴于这样一个列表,你如何计算他们曾经工作的所有电影中每个演员的薪酬总和?
  • 找到他们的舞台名称很容易,因为它似乎是相关表格之间的FK.

您需要了解子查询,以及如何在FROM子句中嵌入子查询.您可能还需要了解表别名.

对于第二个问题:

  • 你如何计算每位导演可以合作的演员数量?
  • 如何将该列表限制为可以与五个或更多演员合作的导演?(具有)
  • 鉴于董事名单(可与四位以上的演员合作),您如何计算导演每年制作的电影数量?(GROUP BY,COUNT)

对于任何复杂的查询,分阶段构建查询是可行的方法,特别是如果您可以随时测试查询.