Zeilen mit dem frühesten Aufzeichnungsdatum für jede eindeutige ID abrufen
Das Arbeiten mit Tabellen, die doppelte id
-Werte enthalten und für jeden eindeutigen record_date
nur die Zeile mit dem frühesten id
auswählen müssen, kann schwierig sein. Standardmethoden haben oft Probleme, wenn record_date
-Werte nicht eindeutig sind. Diese Lösung bewältigt solche Szenarien effizient:
Die folgende SQL-Abfrage wählt effektiv die gewünschten Zeilen aus:
<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>
Diese Abfrage verwendet eine Unterabfrage, um zunächst das Minimum record_date
für jedes id
zu bestimmen. Die Unterabfrage gruppiert die Zeilen nach id
und verwendet dann die Funktion MIN()
, um das Minimum record_date
innerhalb jeder Gruppe zu finden.
Die äußere Abfrage fügt dann die Ergebnisse der Unterabfrage wieder mit der Originaltabelle (MyTable
) zusammen, indem sie sowohl id
als auch record_date
verwendet. Dadurch wird sichergestellt, dass nur Zeilen, die dem Mindestwert record_date
für jedes id
entsprechen, in die endgültige Ergebnismenge aufgenommen werden. Dadurch werden Duplikate effektiv entfernt und nur die Zeilen mit dem frühesten record_date
für jedes eindeutige id
zurückgegeben.
Das obige ist der detaillierte Inhalt vonWie wähle ich Zeilen mit dem minimalen Record_Date für jede eindeutige ID in einer Tabelle aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!