我如何找到超过 5 个开发者的视频游戏的数量。 (SQL 查询)
How do I find the number of video games with more than 5 developers. (SQL query)
假设我有 2 个 table 是视频游戏和开发人员。
在电子游戏table下,我们有以下属性:
- videogameid(PK)
- 标题
- 发布日期
在开发者table下,我们有属性:
- developerid(PK)
- 名字
- 位置
我试着找出拥有 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
您需要加入 videogames2developers
与 videogames
和 developers
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
。
假设我有 2 个 table 是视频游戏和开发人员。
在电子游戏table下,我们有以下属性:
- videogameid(PK)
- 标题
- 发布日期
在开发者table下,我们有属性:
- developerid(PK)
- 名字
- 位置
我试着找出拥有 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
您需要加入 videogames2developers
与 videogames
和 developers
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
。