Bedingtes Zählen nach Spalte
Problembeschreibung:
Angenommen, Sie haben eine Tabelle mit den Spalten jobId
, jobName
und Priority
, wobei Priority
eine ganze Zahl zwischen 1 und 5 ist. Ziel ist es, eine Abfrage zu generieren, die die Anzahl der Zeilen mit einem bestimmten Priority
-Wert zählt und die Ergebnisse in einem Format anzeigt, das zum Erstellen eines Diagrammberichts geeignet ist.
Lösung:
Um die gewünschten Ergebnisse zu erzielen, können Sie eine Kombination aus bedingten Ausdrücken und Aggregatfunktionen verwenden:
<code class="language-sql">SELECT jobID, JobName, SUM(CASE WHEN Priority = 1 THEN 1 ELSE 0 END) AS Priority1, SUM(CASE WHEN Priority = 2 THEN 1 ELSE 0 END) AS Priority2, SUM(CASE WHEN Priority = 3 THEN 1 ELSE 0 END) AS Priority3, SUM(CASE WHEN Priority = 4 THEN 1 ELSE 0 END) AS Priority4, SUM(CASE WHEN Priority = 5 THEN 1 ELSE 0 END) AS Priority5 FROM Jobs GROUP BY jobID, JobName;</code>
Diese Abfrage verwendet einen CASE
-Ausdruck, um nach einem bestimmten Priority
-Wert zu suchen und einen Wert von 1 zuzuweisen, wenn die Bedingung wahr ist, andernfalls von 0. Diese Werte werden dann für jede jobID
- und JobName
-Kombination summiert.
GROUP BY
-Klausel stellt sicher, dass die Ergebnisse nach eindeutigen Werten von jobID
und JobName
gruppiert werden und so eine Aufschlüsselung der einzelnen Jobanzahlen bereitgestellt werden.
Indem Sie die Ergebnisse auf diese Weise formatieren, können Sie sie problemlos in Diagrammberichte einbetten, um die Verteilung von Priority
Werten für verschiedene Jobs zu visualisieren.
Das obige ist der detaillierte Inhalt vonWie kann man Auftragsprioritäten zählen und diagrammfähige Daten generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!