Heim > Datenbank > MySQL-Tutorial > Wie wählt man effizient den Maximalwert für jede Gruppe in einer SQL-Datenbank aus?

Wie wählt man effizient den Maximalwert für jede Gruppe in einer SQL-Datenbank aus?

DDD
Freigeben: 2025-01-16 13:10:01
Original
506 Leute haben es durchsucht

How to Efficiently Select the Maximum Value for Each Group in a SQL Database?

Maximalwerte für jede Gruppe in SQL extrahieren

Eine häufige SQL-Aufgabe besteht darin, den Maximalwert für jede eindeutige Gruppe innerhalb einer Tabelle abzurufen. Lassen Sie uns dies anhand einer Beispieltabelle veranschaulichen:

Name Value AnotherColumn
Pump 1 8000.0 Something1
Pump 1 10000.0 Something2
Pump 1 10000.0 Something3
Pump 2 3043 Something4
Pump 2 4594 Something5
Pump 2 6165 Something6

Unser Ziel ist es, den höchsten Value für jede Name (Pumpe) zu finden, was zu diesem Ergebnis führt:

Name Value
Pump 1 10000.0
Pump 2 6165

Ein naiver Ansatz, der Unterabfragen verwendet, um den Maximalwert für jeden Namen zu ermitteln, führt oft zu doppelten Einträgen, wenn mehrere Zeilen denselben Maximalwert haben:

<code class="language-sql">select a.name, value 
from out_pumptable as a,
(select name, max(value) as value from out_pumptable group by name) g
where a.name = g.name and g.value = a.value</code>
Nach dem Login kopieren

Eine effizientere und präzisere Lösung nutzt jedoch die GROUP BY-Klausel:

<code class="language-sql">select name, max(value)
from out_pumptable
group by name;</code>
Nach dem Login kopieren

Diese Abfrage gruppiert Zeilen basierend auf der Spalte Name und wählt dann das Maximum Value innerhalb jeder Gruppe aus, wodurch doppelte Ergebnisse effektiv vermieden werden und die gewünschte Ausgabe bereitgestellt wird.

Das obige ist der detaillierte Inhalt vonWie wählt man effizient den Maximalwert für jede Gruppe in einer SQL-Datenbank aus?. 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