SQL-Gruppierung zum Entfernen von Duplikaten und Sortieren nach anderen Feldern

SQL-Gruppierung zum Entfernen von Duplikaten und Sortieren nach anderen Feldern

brauchen:

Identische Elemente eines Feldes zusammenführen und nach einem anderen Zeitfeld sortieren.

Beispiel:

Am Anfang

Stadt aus Tabelle auswählen, nach Stadt gruppieren, nach Datum absteigend sortieren

Es wird ein Fehler gemeldet, da das Datum nicht in der Aggregatfunktion oder der GROUP BY-Klausel enthalten ist

Tragen Sie das Datum anschließend in die Gruppe ein durch:

Stadt aus Tabelle auswählen, nach Stadt gruppieren, Datum, nach Datum absteigend sortieren

Holen Sie sich das Ergebnis

Aber die Ergebnisse wiederholen sich immer noch und es gibt keine Lösung

Wenn die Sortierung nicht nach Zeit erfolgt, wirkt sich dies auf meine nachfolgenden Vorgänge aus. Daher habe ich lange nach Baidu gesucht und schließlich eine Lösung gefunden:

Richtige Schreibweise:

Stadt aus Tabelle auswählen, nach Stadt gruppieren, nach max(Datum) absteigend sortieren

Habe ein sehr magisches Ergebnis gefunden

Dann habe ich nach weiteren Informationen gesucht und die Magie von max() entdeckt:

Wähle „city,max(date)“ als d1 aus der Tabelle, gruppiere nach „city,d1“, sortiere nach d1 absteigend

Schreiben Sie es hier vorne und Sie können die Zeitsortierung sehen

Wenn es einen besseren Weg gibt, teilen Sie ihn uns bitte mit.

Ergänzung: Deduplizierung in MySQL, der Unterschied zwischen DISTINCT und GROUP BY

Beispielsweise gibt es die folgende Tabelle user:

Distinct filtert Datensätze heraus, hinter denen sich doppelte Felder befinden.

Verwenden Sie distinct, um eindeutige Benutzernamen zurückzugeben: select distinct name from user;, das Ergebnis ist:

Verwenden Sie distinct, um eindeutige Namen und IDs zurückzugeben: select distinct name,id from user;, das Ergebnis ist:

Wenn Sie „eindeutiger Name, ID“ wie folgt schreiben, geht MySQL davon aus, dass Sie Datensätze mit Duplikaten sowohl im Namens- als auch im ID-Feld herausfiltern möchten.

Wenn das SQL wie folgt geschrieben ist:

Wählen Sie eine ID und einen eindeutigen Namen vom Benutzer aus.

In diesem Fall meldet MySQL einen Fehler, da „distinct“ am Anfang des abzufragenden Feldes stehen muss.

Mit „Gruppieren nach“ können Duplikate aus einem der mehreren abzufragenden Felder entfernt werden:

Wählen Sie ID und Name aus der Benutzergruppe nach Namen aus.

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung der Verwendung von Group By in SQL
  • SQL entfernt doppelte Datensätze (sieben Typen)
  • Detaillierte Analyse der Verwendung von „group by“ und „having“ in SQL
  • Sortieren nach mehreren Feldern und Problemlösung in MySQL

<<:  Ähnlich wie HTML-Tags: strong und em, q, cite, blockquote

>>:  Die einfachste Formularimplementierung des Flexbox-Layouts

Artikel empfehlen

So installieren und konfigurieren Sie GitLab unter Ubuntu 20.04

einführen GitLab CE oder Community Edition ist ei...

Detaillierte Erklärung der Box-Größe in CSS3 (Content-Box und Border-Box)

Box-Größe in CSS3 (Inhaltsbox und Rahmenbox) Mit ...

So bereinigen Sie schnell Milliarden von Daten in einer MySQL-Datenbank

Heute habe ich eine Festplattenalarm-Ausnahme erh...

Implementierungscode für die Dateimontage von DockerToolBox

Wenn Sie Docker verwenden, stellen Sie möglicherw...

Lösung für den Fehler beim Starten von MySQL

Lösung für den Fehler beim Starten von MySQL MySQ...

mysql8.0.23 msi Installation super ausführliches Tutorial

1. Laden Sie MySql herunter und installieren Sie ...

Eine kurze Diskussion über Yahoos 35 Regeln zur Front-End-Optimierung

Zusammenfassung: Ob bei der Arbeit oder im Vorste...

Detailliertes Tutorial zur Installation des ElasticSearch:7.8.0-Clusters mit Docker

Der ElasticSearch-Cluster unterstützt動態請求的方式und靜態...

So beheben Sie den PyCurl-Fehler unter Linux

Lösung für „Curl-config konnte nicht ausgeführt w...