Ich möchte sowohl die Gesamtzahl der Datensätze in einer Tabelle als auch die Gesamtzahl der Datensätze, die bestimmte Bedingungen erfüllen, zählen. Ich kann dies mit zwei getrennten Abfragen tun:
%Vor%Gibt es eine Möglichkeit, diese in einer Abfrage zu kombinieren, so dass ich zwei Felder in einer Zeile bekomme?
%Vor%Wenn nicht, kann ich zwei Abfragen ausgeben und sie in eine Transaktion einfügen, so dass sie konsistent sind, aber ich habe gehofft, es mit einem zu tun.
edit: Ich bin am meisten besorgt über die Atomarität; Wenn zwei Unter-SELECT-Anweisungen benötigt werden, ist das OK, solange ein INSERT von irgendwo kommt, macht es die beiden Antworten nicht inkonsistent.
edit 2: Die CASE-Antworten sind hilfreich, aber in meinem spezifischen Fall können die Bedingungen einen JOIN mit einer anderen Tabelle enthalten (vergessen, dies in meinem ursprünglichen Post zu erwähnen, sorry), also vermute ich, dass dieser Ansatz nicht funktioniert.
Wenn Sie nur Zeilen zählen, können Sie einfach verschachtelte Abfragen verwenden.
%Vor%MySQL zählt keine NULL, also sollte das auch funktionieren:
%Vor%Das funktioniert gut, wenn das QuailifiedCount-Feld von einem LINKEN JOIN kommt, und es ist Ihnen nur wichtig, ob es existiert. Um die Anzahl der Benutzer und die Anzahl der Benutzer zu ermitteln, die ihre Adresse eingegeben haben:
%Vor%Tags und Links sql