我有两个表,我不会查询一些数据.问题是查询永远不会停止,也从不给出任何结果.
任务是获得所有男演员的百分比.
filmparticipation(partid, personid, filmid, parttype)
person(personid, lastname, firstname, gender)
Run Code Online (Sandbox Code Playgroud)
她是我的尝试,有人可以给我一个提示来完成任务吗?
SELECT (COUNT(p.personid) / COUNT(a.person)) * 100
FROM person p, person a, filmparticipation f
WHERE
f.parttype = 'cast' AND
p.gender = 'M';
Run Code Online (Sandbox Code Playgroud)
你ON的联接没有任何条款,所以你加入每个记录与三个表中的每个其他记录!相反,尝试这样的事情:
select (count(case when p.gender = 'M' then 1 end) / count(*)) * 100
from person p
inner join filmparticipation f on p.personid = f.personid
where f.parttype = 'cast'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1442 次 |
| 最近记录: |