2017-05-18 4 views
0

Guten Abend! Wie kann ich COALESCE eine nach COUNT(*) gruppierte Abfrage?coalesce count entspricht 0 Gruppe von

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; 

las ich die Dokumentation und das ist die wichtigste Lösung, es zu tun, aber es ist die Kategorien mit total = 0 nicht zurück.

Mit freundlichen Grüßen

Antwort

1

die Rückkehr von count() kann nicht null sein, so dass Sie coalesce nicht brauchen es

Sie wahrscheinlich versuchen, diese zu bekommen?

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

Ich möchte die Kategorien mit 'count = 0' zurückgeben. Auf diese Weise werden nur die Kategorien mit> 0 Kategorien und deren Summe ausgewählt. –

+0

Ja, ich habe versucht, Ihren Vorschlag –

+0

Der richtige Beitritt druckt alles, aber anstelle einer 0, bekam eine 1. –