halten Ich habe eine Abfrage, die SQL-Abfrage der Anzahl der Ergebnisse zu zählen, wo verschiedene Bedingungen
SELECT ju.name,
COUNT(DISTINCT p.value) AS nproblems
FROM #problems p
JOIN <thing> ju ON <whatever>
WHERE <condition 1>
AND <condition 2>
AND <condition 3>
GROUP BY ju.name
ORDER BY nproblems DESC
Das ist in Ordnung, wie
aussieht, und gibt mir ein Ergebnis mit Namen und Werten gesetzt. Aber was mich wirklich interessiert, ist die Anzahl der Probleme ohne die WHERE-Klausel, dann mit nur Bedingung 1, dann Bedingungen 1 + 2, dann Bedingungen 1 + 2 + 3. Ich würde gerne schreibenSELECT ju.name,
COUNT(DISTINCT p.value WHERE <condition 1>) foo,
COUNT(DISTINCT p.value WHERE <condition 2>) bar,
...
aber leider kann ich nicht. Gibt es eine nette Möglichkeit, dies zu tun?
+1 schöne Frage: wie Mahmoud vorgeschlagen - versuchen Sie es mit 'CASE' im' SELECT' Klausel und loswerden der 'WHERE' – whytheq