2017-03-04 35 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;