Eindeutige Zeilen mit dem frühesten Aufnahmedatum auswählen
Angenommen, Sie haben eine Tabelle mit mehreren Einträgen für jede eindeutige Kennung und müssen nur die eindeutigen Zeilen abrufen, die das früheste Aufzeichnungsdatum für jede Kennung darstellen. Dies ist besonders nützlich, wenn es um doppelte Aufnahmedaten geht.
Hier ist eine SQL-Abfrage, die dieses Problem effizient löst:
<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 funktioniert in zwei Schritten:
Mindestdaten finden: Die innere Abfrage (SELECT id, MIN(record_date) AS MinDate FROM MyTable GROUP BY id
) identifiziert das Mindestdatum record_date
für jedes eindeutige id
.
Übereinstimmende Zeilen auswählen: Die äußere Abfrage verknüpft die Ergebnisse der inneren Abfrage mit der Originaltabelle (MyTable
). Es werden nur die Zeilen aus MyTable
ausgewählt, in denen sowohl id
als auch record_date
mit dem in der inneren Abfrage gefundenen Mindestdatum übereinstimmen.
Das Endergebnis enthält nur die Zeilen mit dem frühesten record_date
für jede eindeutige Kennung, wodurch doppelte Zeilen mit unterschiedlichen Aufzeichnungsdaten ausgeschlossen werden.
Das obige ist der detaillierte Inhalt vonWie wähle ich eindeutige Zeilen mit dem Mindestwert für ein bestimmtes Feld in SQL aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!