493 Stimmen

Wie kann ich mehrere Zählungen mit einer SQL-Abfrage erhalten?

Ich frage mich, wie ich diese Anfrage schreiben soll.

Ich weiß, dass diese eigentliche Syntax falsch ist, aber sie wird Ihnen helfen zu verstehen, was ich will.

Ich brauche sie in diesem Format, weil sie Teil einer viel größeren Abfrage ist.

SELECT distributor_id,
COUNT(*) AS TOTAL,
COUNT(*) WHERE level = 'exec',
COUNT(*) WHERE level = 'personal'

Ich brauche dies alles in einer Abfrage.

Außerdem muss es in einer Zeile stehen, so dass das Folgende nicht funktionieren wird:

'SELECT distributor_id, COUNT(*)
GROUP BY distributor_id'

1voto

Sinte Punkte 91

Ich denke, das kann auch für Sie funktionieren select count(*) as anc,(select count(*) from Patient where sex='F')as patientF,(select count(*) from Patient where sex='M') as patientM from anc

und Sie können auch verwandte Tabellen wie folgt auswählen und zählen select count(*) as anc,(select count(*) from Patient where Patient.Id=anc.PatientId)as patientF,(select count(*) from Patient where sex='M') as patientM from anc

0voto

simon Punkte 593

Die kürzlich hinzugefügte PIVOT-Funktionalität kann genau das tun, was Sie brauchen:

SELECT *
FROM ( SELECT level from your_table )
PIVOT ( count(*) for level in ('exec', 'personal') )

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X