ich eine Oracle-Tabelle, die wie folgt aussieht:Oracle SQL Query Statistik Zusammengefasst mit GROUP mit Daten BY
ID BATCH STATUS
1 1 0
2 1 0
3 1 1
4 2 0
Das heißt, ID ist der Primärschlüssel, gibt es mehrere Zeilen für jeden sein "Batch", und jede Zeile hat einen Statuscode in der Spalte STATUS. Es gibt eine Reihe anderer Spalten, aber das sind die wichtigen.
Ich brauche eine Abfrage zu schreiben, die den Statuscodes für jeden Charge zusammenfassen werden; gibt es drei mögliche Werte, die in der Spalte Status, 0, 1 und 2, und ich möchte Ausgabe, die etwa wie folgt aussieht gehen kann:
BATCH STATUS0 STATUS1 STATUS2
1 2 1 0
2 1 0 0
Diese Zahlen würden zählt; für Batch-1 gibt es
- 2 Datensätze, bei denen STATUS-0
- 1 gesetzt Datensatz, in dem STATUS-1 gesetzt ist, und
- keine Aufzeichnungen, wo STATUS-0 gesetzt .
Für Batch-2 gibt es
- 1 Datensatz wo STATUS-0 gesetzt und
- keine Aufzeichnungen, wo STATUS-1 gesetzt ist oder 2.
Gibt es eine Möglichkeit, dass ich dies in einer Abfrage tun, ohne muss die Abfrage für jeden Statuscode neu geschrieben werden? dh ich kann leicht eine Abfrage so schreiben, und führen Sie es dreimal:
SELECT batch, COUNT(status)
FROM table
WHERE status = 0
GROUP BY batch
ich laufen konnte, führen Sie es dann wieder in den Status = 1, und wieder in den Status = 2, aber ich bin die Hoffnung, Mach es in einer Abfrage.
Wenn es einen Unterschied macht, abgesehen von der STATUS Spalte gibt es andere Spalte, die ich auf die gleiche Weise zusammenfassen möchten - ein weiterer Grund, dass ich nicht wollen, SELECT-Anweisung nach SELECT haben auszuführen Aussage und fusionieren alle Ergebnisse.
Danke dafür! – imiric