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 verwenden Sie Font Awesome 5 in Vue-Entwicklungsprojekten

Inhaltsverzeichnis Abhängigkeiten installieren Ko...

Was tun, wenn Sie Ihr Passwort in MySQL 5.7.17 vergessen?

1. Skip-Grant-Tables zur Datei my.ini hinzufügen ...

Drei Möglichkeiten zur Implementierung des Wasserfall-Flow-Layouts

Vorwort Als ich heute Xianyu durchsuchte, fiel mi...

Verschachtelte Anzeigeimplementierung der Vue-Router-Ansicht

Inhaltsverzeichnis 1. Routing-Konfiguration 2. Vu...

Fünf Lösungen für Cross-Browser-Probleme (Zusammenfassung)

Kurz zusammengefasst: Browserkompatibilitätsprobl...

Vue implementiert eine einfache Produktion von Zählern

In diesem Artikelbeispiel wird der einfache Imple...

Implementierung der TCPWrappers-Zugriffskontrolle in Centos

1. Übersicht über TCP-Wrapper TCP Wrapper „verpac...

CentOS 7 erstellt Hadoop 2.10 mit hoher Verfügbarkeit (HA)

Dieser Artikel beschreibt, wie man einen hochverf...