Heim >Datenbank >MySQL-Tutorial >Wie zähle ich Jobprioritäten mithilfe bedingter SQL-Abfragen?
Verwenden Sie bedingte Zählabfragen für die Prioritätsanalyse
Bei der Datenanalyse ist häufig bedingtes Zählen erforderlich, um Informationen aus kategorialen Daten zu extrahieren. Stellen Sie sich eine Tabelle vor, die die Spalten „jobId“, „jobName“ und „Priority“ enthält, wobei „Priority“ zwischen 1 und 5 liegt. Wir müssen eine Abfrage erstellen, die die Anzahl der Zeilen für jede Prioritätsstufe zählt.
Abfrage mit CASE-Anweisung:
Die folgende Abfrage verwendet eine CASE-Anweisung, um eine bedingte Zählung für jede Prioritätsstufe durchzuführen:
<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>
Für jede Zeile prüft die CASE-Anweisung, ob der „Priority“-Wert mit der angegebenen Zahl übereinstimmt (z. B. Priority1 ist 1). Der Ausdruck gibt 1 zurück, wenn er wahr ist, und 0, wenn er falsch ist. Die SUM-Funktion aggregiert diese Werte dann für jede Gruppe (bestimmt durch „jobId“ und „jobName“).
JobID und JobName entfernen:
Wenn „jobId“ und „jobName“ nicht in den Ergebnissen enthalten sein sollen, können Sie sie entfernen, indem Sie die Klauseln SELECT und GROUP BY ändern:
<code class="language-sql">SELECT 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</code>
Diese vereinfachte Abfrage gibt nur die Bedingungsanzahl für jede Prioritätsstufe zurück.
Das obige ist der detaillierte Inhalt vonWie zähle ich Jobprioritäten mithilfe bedingter SQL-Abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!