我如何找到超过 5 个开发者的视频游戏的数量。 (SQL 查询)

How do I find the number of video games with more than 5 developers. (SQL query)

假设我有 2 个 table 是视频游戏和开发人员。

在电子游戏table下,我们有以下属性:

在开发者table下,我们有属性:

我试着找出拥有 5 个以上开发者的视频游戏的总数。这是我解决问题的尝试。

SELECT COUNT(videogameid)
FROM videogames, developers
WHERE videogameid = developerid
GROUP BY developerid
HAVING COUNT(developerid) > 5; 

虽然我没有遇到任何错误问题,但没有弹出任何结果 up.The 结果为空,甚至没有 zero.Hence 我可能做错了什么。

编辑:是的,还有一个 table 实际上与他们相关,它是 videogames2developers,它具有以下属性:

-videogameid
-developerid
-genre

您需要加入 videogames2developersvideogamesdevelopers table:

select count(videogameid) 
from
    (SELECT v.videogameid
    FROM videogames v inner join videogames2developers vd
         on v.videogameid =vd.videogameid 
                      inner join developers d
         on vd.developerid=d.developerid
    GROUP BY v.videogameid
    HAVING COUNT(d.developerid) > 5
) t

桥梁 table videogames2developers 足以完成这项任务。首先获取开发者超过五个的所有视频游戏,然后统计这些游戏的数量。

select count(*)
from
(
  select videogameid
  from videogames2developers 
  group by videogameid
  having count(*) > 5
) games_with_more_than_five_devs;

这假设 table 中每个游戏和开发者都有一个条目。如果不是这种情况,则将 having count(*) > 5 替换为 having count(distinct developerid) > 5