Betrachten Sie die folgende Abfrage;Abfrage, um das Mindestdatum in der Gruppe zu finden.
SELECT id, MIN(updated_at)
FROM accounts
GROUP BY mem_id, account, sub_account
HAVING COUNT(*) > 1
Einfache Erklärung Duplikate zu finden, indem die ausgewählten Felder Gruppierung und Drucken des id
und kleinsten updated_at
Wert unter diesen Gruppierungen.
Das Problem, auf das ich stoße, ist, dass es den kleinsten updated_at
Wert druckt, aber die id
, die damit gedruckt wird, kann dem anderen doppelten Eintrag in einigen Zeilen zugeordnet werden.
Es scheint, als ob es die id
in jeder Gruppierung separat (und zufällig) aus dem Minimum updated_at
Wert auswählt. Wie kann ich das beabsichtigte Verhalten erhalten, das id
zu assoziieren, das mit dem Minimum updated_at
Wert jedes Mal verbunden wird?
Beispieldaten:
(id, mem_id, account, sub_account, updated_at) VALUES (2351, 12, 123456, 12345, 2016-04-30)
(id, mem_id, account, sub_account, updated_at) VALUES (7638, 12, 123456, 12345, 2016-06-15)
hier Mein Ziel ist es, die id
des updated_at
Wert zwischen diesen beiden zu erhalten, die den Minimalwert ist. Daher möchte ich id 2351
, aber in einigen Zeilen wird es die andere ID zufällig zurückgeben.
zeigen uns, Beispieldaten, aktuelle und erwartete Ergebnis \t Bitte lesen Sie [** How-to-Frage **] (http://stackoverflow.com/help/how-to-ask) \t \t Und hier ist ein toller Ort, um [** START **] (http://spaghettiba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/) zu lernen, wie Verbessere deine Fragequalität und erhalte bessere Antworten. –
@JuanCarlosOropeza Hinzugefügt in etwas mehr Erklärung. – SDee
Haben Sie dort PK? –