Heim >Datenbank >MySQL-Tutorial >Wie kann man effizient den frühesten Datensatz für jede eindeutige ID in einer Tabelle mit doppelten Datumsangaben finden?

Wie kann man effizient den frühesten Datensatz für jede eindeutige ID in einer Tabelle mit doppelten Datumsangaben finden?

Linda Hamilton
Linda HamiltonOriginal
2025-01-17 19:56:14434Durchsuche

How to Efficiently Find the Earliest Record for Each Distinct ID in a Table with Duplicate Dates?

Extrahieren des ersten Datensatzes für jede eindeutige ID, Umgang mit doppelten Daten

Stellen Sie sich eine Tabelle (nennen wir sie MyTable) mit den Spalten key_id, id, record_date und anderen Spalten (other_cols) vor. Das Ziel besteht darin, für jedes eindeutige record_date die Zeile zu bestimmen, die das früheste id enthält.

Standardmethoden gehen häufig von eindeutigen record_date Werten aus, aber unsere Daten können Duplikate enthalten. Komplexe Abfragen mit Unterabfragen und Joins können zu unnötigen Ergebnissen führen.

Ein optimierterer Ansatz verwendet eine Unterabfrage:

<code class="language-sql">SELECT mt.*
FROM MyTable mt
INNER JOIN (
    SELECT id, MIN(record_date) AS MinDate
    FROM MyTable
    GROUP BY id
) t ON mt.id = t.id AND mt.record_date = t.MinDate;</code>

Die innere Unterabfrage findet effizient das früheste record_date (MinDate) für jedes id, indem sie die Daten gruppiert. Die äußere Abfrage verknüpft dieses Ergebnis dann wieder mit der Originaltabelle (MyTable) und wählt nur die Zeilen aus, in denen record_date mit dem in der Unterabfrage gefundenen Mindestdatum übereinstimmt. Dadurch wird effektiv der früheste Datensatz für jedes eindeutige id abgerufen, doppelte Daten werden ordnungsgemäß behandelt und redundante Daten vermieden.

Das obige ist der detaillierte Inhalt vonWie kann man effizient den frühesten Datensatz für jede eindeutige ID in einer Tabelle mit doppelten Datumsangaben finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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