Heim > Datenbank > MySQL-Tutorial > Wie zähle ich bedingte Werte in einer SQL-Spalte?

Wie zähle ich bedingte Werte in einer SQL-Spalte?

DDD
Freigeben: 2025-01-09 22:52:47
Original
1041 Leute haben es durchsucht

How to Count Conditional Values in a SQL Column?

Statistische Bedingungswerte in SQL-Spalten

Angenommen, Sie haben eine Spalte namens „Priorität“, die ganzzahlige Werte zwischen 1 und 5 enthält. Sie möchten ein Diagramm erstellen, das die Anzahl für jeden Prioritätswert zeigt. Beispielsweise sollte „Priorität1“ die Anzahl der Zeilen mit einem „Prioritäts“-Wert von 1 zählen, „Priorität2“ sollte die Anzahl der Zeilen mit einem „Prioritäts“-Wert von 2 zählen und so weiter.

Lösung:

Dazu können Sie eine SQL-Abfrage mit einer bedingten Aggregatfunktion 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>
Nach dem Login kopieren

Diese Abfrage verwendet bedingte Aggregation, um die Anzahl der Zeilen für jeden Prioritätswert zu zählen. Der CASE-Ausdruck prüft den Wert von Priority und gibt 1 zurück, wenn er mit dem erforderlichen Prioritätswert übereinstimmt, andernfalls gibt er 0 zurück. Die SUM-Funktion akkumuliert diese Werte dann, um die endgültige Zählung zu ermitteln.

Wenn Sie die Spalten jobID und JobName in den Ergebnissen nicht benötigen, können Sie sie aus der SELECT-Klausel entfernen und die GROUP BY-Klausel entfernen:

<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>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie zähle ich bedingte Werte in einer SQL-Spalte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage