484 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

Domingos Manuel Punkte 21

In Oracle werden Sie etwa Folgendes tun

SELECT
    (SELECT COUNT(*) FROM schema.table1),
    (SELECT COUNT(*) FROM schema.table2),
    ...
    (SELECT COUNT(*) FROM schema.tableN)
FROM DUAL;

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