SQL:如果没有,有没有办法计算表中值的数量?
Posted
技术标签:
【中文标题】SQL:如果没有,有没有办法计算表中值的数量?【英文标题】:SQL: is there a way to count the number of values from a table if there are none? 【发布时间】:2022-01-10 03:15:00 【问题描述】:所以我有两张表,一张是“电影”(movie,type,lenght),一张是“演员表”(title_movie,id_actor),我必须计算每个演员演过多少“科幻”电影。
我试过了:
SELECT id_actor, Count(type)
FROM Cast, Movies
WHERE type='SF' and title_movie=movie
GROUP BY id_actor;
它只显示至少有 1 部 SF 电影的演员,不显示那些有 0 部电影的演员。有什么想法吗?
【问题讨论】:
今日提示:始终使用现代、明确的JOIN
语法。更容易编写(没有错误),更容易阅读(和维护),并且如果需要更容易转换为外连接。
【参考方案1】:
LEFT JOIN
获取所有演员。要仅计算 SF 电影,请使用 case
表达式 进行条件聚合。
SELECT id_actor, sum(case when type = 'SF' then 1 else 0 end)
FROM Cast
LEFT JOIN Movies ON title_movie = movie
GROUP BY id_actor;
【讨论】:
以上是关于SQL:如果没有,有没有办法计算表中值的数量?的主要内容,如果未能解决你的问题,请参考以下文章