Heim > Datenbank > MySQL-Tutorial > Wie aggregiert man effizient mehrere Spalten aus verschiedenen Tabellen in einer einzigen MySQL-Anweisung?

Wie aggregiert man effizient mehrere Spalten aus verschiedenen Tabellen in einer einzigen MySQL-Anweisung?

Susan Sarandon
Freigeben: 2025-01-21 11:12:10
Original
589 Leute haben es durchsucht

How to Efficiently Aggregate Multiple Columns from Different Tables in a Single MySQL Statement?

Konsolidieren von Daten aus mehreren Tabellen mit einer einzigen MySQL-Abfrage

Anfangs führte die Verwendung mehrerer Unterabfragen zur Aggregation von Daten aus verschiedenen Tabellen zu ungenauen Ergebnissen, da nur die erste Spalte korrekte Werte anzeigte. Um dieses Problem zu lösen, ist eine effizientere Methode erforderlich.

Die effektivste Lösung beinhaltet die bedingte Aggregation innerhalb einer einzelnen Tabellenabfrage. Dieser Ansatz vermeidet die Einschränkungen mehrerer Unterabfragen und liefert genaue Ergebnisse. Die folgende Abfrage demonstriert diese Technik:

<code class="language-sql">SELECT DAY_IN, COUNT(*) AS arr,
       SUM(IF(PAT_STATUS LIKE '%ong%', 1, 0)) AS ONG1,
       SUM(IF(PAT_STATUS LIKE '%rtde%', 1, 0)) AS RTED,
       SUM(IF(PAT_STATUS LIKE '%pol%', 1, 0)) AS POL1,
       SUM(IF(PAT_STATUS LIKE '%para%', 1, 0)) AS para
FROM t_hospital
WHERE DAY_IN BETWEEN @start_check AND @finish_check
  AND RES_DATE BETWEEN @start_res AND @finish_res
  AND ID_daily_hos = @daily_hos
GROUP BY DAY_IN</code>
Nach dem Login kopieren

Diese Abfrage verwendet die Funktion IF(), um Vorkommen basierend auf der Spalte PAT_STATUS bedingt zu zählen. Jede Zeile wird nur einmal gezählt und trägt zu einer einzigen aggregierten Spalte bei. Die Funktion SUM() summiert dann diese bedingten Zählungen für jedes DAY_IN.

Dieser Einzelabfrage-Ansatz bietet eine präzise und genaue Methode zum Aggregieren von Daten aus verschiedenen Spalten innerhalb derselben Tabelle und löst so das Problem ungenauer Ergebnisse, die mit der ursprünglichen Methode mit mehreren Unterabfragen erzielt wurden.

Das obige ist der detaillierte Inhalt vonWie aggregiert man effizient mehrere Spalten aus verschiedenen Tabellen in einer einzigen MySQL-Anweisung?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage