2017-05-18 8 views
0

おはよう! COALESCECOUNT(*)でグループ化するにはどうすればよいですか?合体カウントは0グループになります。

SELECT categories.name, COALESCE(COUNT(*), 0) as total FROM questions 
    INNER JOIN categories 
    ON questions.categoryid = categories.categoryid 
GROUP BY name 
ORDER BY total DESC; 

私は、ドキュメントを読んで、これはそれを行うための主要なソリューションですが、それはtotal = 0でカテゴリを返していません。あなたが​​3210する必要はありません、それは

あなたはおそらくこれを取得しようとして

種類は、

答えて

1

count()のリターンがnullにカントに関しては?

SELECT categories.name, COUNT(questions.categoryid) as total 
FROM questions 
RIGHT OUTER JOIN categories 
    ON questions.categoryid = categories.categoryid 
GROUP BY name 
ORDER BY total DESC; 
+0

「カウント= 0」のカテゴリを返したいとします。そうすることで、> 0のカテゴリとその合計を持つカテゴリのみが選択されます。 –

+0

はい、私はあなたの提案を試しました –

+0

右の結合は0の代わりにすべてを表示し、1を得ました。 –

関連する問題