SQL计数总和和连接表

时间:2015-03-16 07:53:00

标签: sql oracle count

我从我的SQL类遇到了一个问题,但没有解决方案。我的查询只需要显示具有相同数量的女性和男性演员的电影。

我有三张桌子: (表:字段1,字段2):

Casting: actor_number, movie_number
Actor_List: id, name, gender
Movie_List: id, movie_name

1 个答案:

答案 0 :(得分:2)

子查询使用一点CASE()技巧来有条件地增加计数(即countif)。子查询因子分解语法意味着我们只执行一次查询。

with cte as (
    select m.movie_name
           , sum(case when a.gender = 'M' then 1 else 0 end) as male_tot 
           , sum(case when a.gender = 'F' then 1 else 0 end) as female_tot 
    from casting c
         join movie_list m
          on c.movie_number = m.id
         join actor_list a
          on c.actor_number = a.id
   group by m.name
    )
select cte.* 
from cte
where cte.male_tot = cte.female_tot ;