2017-03-04 66 views
0

假设我们有如下关系: 作者(姓名,职务,语言)SQL遇到了麻烦所需的查询

我试图做到的是进行查询,列出所有的作者和多少用他们制作的特定语言编写的书籍,如果他们没有使用该语言,则显示零。

我到目前为止已经试过这是

select name, count("language") as SomeLanguage 
from Author 
where "language"='English' 
group by name;  

它给出了在他们做出了指定的语言多少书的数量,但我不知道如何包括没有其他作者用这种语言写一本书。

输出示例:

Name | SomeLanguage 
---------------- 
Bill | 4 
Rob | 1 
Bob | 0 

回答

0

你想有条件聚集:

select name, 
     sum(case when language = 'English' then 1 else 0 end) as SomeLanguage 
from Author 
group by name;