Wenn wir SQL zum Extrahieren von Daten verwenden, stoßen wir häufig auf doppelte Werte in der Tabelle. Wenn wir beispielsweise UV (eindeutige Besucher) abrufen möchten, müssen wir Duplikate entfernen. In MySQL wird normalerweise Beispielsweise gibt es eine Tabellenaufgabe wie diese: Bemerkung:
Wir müssen die Gesamtzahl der Aufgaben ermitteln. Da die Task-ID nicht eindeutig ist, müssen wir Duplikate entfernen: unterscheidbar -- Alle eindeutigen Werte der Task-ID auflisten (nach Deduplizierung) Wählen Sie eine eindeutige Task-ID aus von der Aufgabe; --Gesamtzahl der Aufgaben, wählen Sie Anzahl (eindeutige Task-ID) Task-Nummer von der Aufgabe;
Gruppieren nach -- Alle eindeutigen Werte der Task-ID auflisten (nach der Deduplizierung ist null auch ein Wert) -- Task-ID auswählen -- von Task -- Gruppieren nach Task-ID; --Gesamtzahl der Aufgaben, wählen Sie Anzahl (Aufgaben-ID) Aufgabennummer von (Task-ID auswählen) von Aufgabe Gruppieren nach Task-ID) tmp; Zeilennummer row_number ist eine Fensterfunktion mit der folgenden Syntax: - Verwenden Sie select count(case when rn=1 then task_id else null end) task_num in SQL, das Fensterfunktionen unterstützt von (Task-ID auswählen) , row_number() über (Partition nach Task-ID, Sortierung nach Startzeit) rn von Task) tmp; Lassen Sie uns außerdem anhand eines Tabellentests die Verwendung von „distinct“ und „group by“ bei der Deduplizierung erklären: -- Das Semikolon unten wird verwendet, um Zeilen zu trennen. Wählen Sie eine eindeutige Benutzer-ID aus. von Test; -- gibt 1; 2 zurück Wählen Sie eindeutige Benutzer-ID und Benutzertyp aus von Test; – gibt 1, 1; 1, 2; 2, 1 zurück Wählen Sie Benutzer-ID aus von Test Gruppieren nach Benutzer-ID; -- gibt 1; 2 zurück Wählen Sie Benutzer-ID und Benutzertyp aus. von Test Gruppieren nach Benutzer-ID, Benutzertyp; – gibt 1, 1; 1, 2; 2, 1 zurück Wählen Sie Benutzer-ID und Benutzertyp aus. von Test Gruppieren nach Benutzer-ID; -- Hive, Oracle usw. melden einen Fehler, aber MySQL kann so geschrieben werden. – Gibt 1, 1 oder 1, 2; 2, 1 (insgesamt zwei Zeilen) zurück. Nur die Felder nach group by werden dedupliziert, d. h. die Anzahl der am Ende zurückgegebenen Datensätze entspricht der Anzahl der Datensätze in der vorherigen SQL-Anweisung, also 2 Datensätze. Für Felder, die nicht nach group by, sondern in select platziert werden, wird nur ein Datensatz zurückgegeben (normalerweise der erste, aber es sollte kein Muster vorhanden sein). Dies ist das Ende dieses Artikels mit der Zusammenfassung der SQL-Deduplizierungsmethoden. Weitere relevante SQL-Deduplizierungsmethoden finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Teilen Sie 10 der neuesten Web-Frontend-Frameworks (Übersetzung)
>>: Beispielcode für reines CSS zum Erzielen eines Popup-Popup-Effekts beim Hovern von Bildern
Zurück: Markup Language - Phrasenelemente Original...
Es gibt viele Tools zum Sichern von MySQL-Datenba...
Dieser Artikel beschreibt die Benutzer- und Rolle...
Inhaltsverzeichnis 1. Einleitung 2. Vorteile 3. N...
Kürzlich ist beim Starten von MySQL ein Fehler au...
Inhaltsverzeichnis Vorwort Warum Unit-Tests einfü...
1. Schnittstelle für die Anforderung einer Antwor...
Inhaltsverzeichnis Stellen Sie nginx auf Server1 ...
1. Problemeinführung Nehmen Sie ein Szenario an, ...
Voraussetzungen Compose ist ein Tool zum Orchestr...
Heute zeigen wir Ihnen, wie Sie das lokale Docker...
Werfen wir einen Blick auf den Installationsproze...
Inhaltsverzeichnis 1. Verwenden Sie Standardparam...
Die Indizierung ähnelt dem Erstellen bibliografis...
Inhaltsverzeichnis Benutzerdefinierte Vite-Plugin...