Ist es möglich, eine Bedingung in Count () anzugeben?

Ist es möglich, eine Bedingung anzugeben, in Count()? Ich würde gerne zählen nur die Zeilen, zum Beispiel "Manager" in der Spalte "Position".

Ich will es tun, in der count-Anweisung, nicht mit WHERE; ich Frage nach, weil ich auf zählen sowohl Führungskräfte und Andere in der gleichen SELECT (so etwas wie Count(Position = Manager), Count(Position = Other)) so WHERE ist kein nutzen für mich in diesem Beispiel.

Kommentar zu dem Problem
Boo alle * Benutzer, verwenden Sie Count(SomeColumnInYourTable) where Position = 'Manager' Kommentarautor: Mark Dickinson
@Mark: Auf alle modernen Datenbanken, nicht alle Unterschied. Kommentarautor: Philippe Leybaert
@Mark & Philippe: Eigentlich kann eine große Differenz. Wenn das Feld null-Werte zulässt und nicht indiziert ist, die Abfrage berühren muss jeden Datensatz in der Tabelle, also mit count(*) und count(Feld) geben kann, verschiedene Ergebnisse und der unterschiedlichen Leistung. Kommentarautor: Guffa
Ich habe analysiert Ausführungspläne für count(*) gegen count(x) seit Jahren, und bisher habe ich noch nicht eine einzige gefunden, die zeigte, dass ein Unterschied in der Leistung. Deshalb würde ich wirklich gerne sehen, ein Beispiel für eine Abfrage, wo es einen Unterschied. Kommentarautor: Philippe Leybaert
@Matthew: wir reden hier nicht über SELECT *, aber SELECT COUNT(*), das ist ein ganz anderes Biest. Kommentarautor: Philippe Leybaert

InformationsquelleAutor der Frage agnieszka | 2009-09-09

Schreibe einen Kommentar