【发布时间】:2012-08-16 08:21:04
【问题描述】:
我有一张表,其中包含许多与不同导演 ID 相关联的电影,我需要计算由相同导演 ID 制作的电影的数量以及该导演的姓名。
我的限制是只显示制作了 5 部电影或更多电影的导演。我有 2 个单独的表,一个包含电影名称和导演 ID,另一个包含导演 ID 和导演姓名。
我在浏览本网站上其他人的答案的基础上提出了以下查询:
选择 A.Director_name, C.cnt
来自 M_Movie B
内连接(选择 Director_ID、Director_Name
来自 M_Director) A 上 B.Director_ID = A.Director_ID
Inner Join (select Director_ID, count(Director_id) as cnt
来自 M_Movie
按 Director_ID 分组)C 上 B.Director_ID = C.Director_ID
其中cnt >= 5
按cnt desc排序;
上面的代码通过列出导演的姓名和他们导演的电影数量为我提供了所需的答案。 - 但是问题来了……
导演姓名:电影数量(CNT):
《A导演》10 《A导演》10 《A导演》10 《A主任》10...(发生10次) 《B主任》8 《B主任》8 “B主任”8....(发生8次) 《C主任》7
答案列出了“导演A”(导演了10部电影)10次,“CNT”为10,然后列表中的下一个是“导演B”(导演了8部电影)8次“CNT”为 8,然后“C 主任”被列出 7 次,以此类推……
理想情况下,我希望拥有:
导演姓名:电影数量(CNT):《A导演》10 《B主任》8 《C主任》7 没有重复,只有列出的导演姓名和他们导演的电影数量。
请帮忙!
【问题讨论】:
标签: sql performance tags count