SQL艰难查询

时间:2012-06-14 02:58:23

标签: sql

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

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

对于2006年在电影中扮演角色的每个演员,找到他们的舞台名称和总薪水 他们采取行动的电影(即包括那些不在2006年的电影)。

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

1 个答案:

答案 0 :(得分:6)

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

对于第一个问题:

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

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

关于第二个问题:

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

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