yo,
wir brauchen, dbms, version, bespieldaten mit den daten, die rauskommen sollen (resultset). ferner ist es besser COUNT(*) für die id zu schreiben, da wohl die id spalte niemals NULL ist.
die zuweisung innerhalb einer aggregatfunktion ist mir neu. ich habe aber meine starken zweifel daran, dass damit eine selektion der zu zählenden datensätze erfolgt. ich würde vielmehr mit dem IF operator arbeiten und im ungleichfall NULL werte einsetzen, weil diese durch aggregatfunktionen ignoriert werden.
was die variablen betrifft, kannst du sie ja erst einmal weglassen und entsprechend mit den aggregatfunktionen ausfüllen, erst recht, wenn du die ausgabe der jeweiligen aggregat-funktionen gar nicht zur ausgabe brauchst, sondern nur als zwischenergebnisse.
Ilja