„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie finde ich die älteste Person in jeder Gruppe in SQL?

Wie finde ich die älteste Person in jeder Gruppe in SQL?

Gepostet am 2025-03-04
Durchsuche:920

How to Find the Oldest Person in Each Group in SQL?

effizient abrufen hochrangige Datensätze in gruppierten SQL Data

Dieses Beispiel zeigt, wie die älteste Person innerhalb jeder Gruppe in einer SQL -Tabelle identifiziert wird, unter Berücksichtigung der alphabetischen Reihenfolge, um die Krawatten zu lösen. Die Tabellenstruktur enthält "Person", "Gruppen" und "Alter" -Kumalen:

Beispiel Tabelle:

Person Gruppe Alter
Bob 1 32
jill 1 34
shawn 1 42
jake 2 29
paul 2 36
laura 2 39

objektiv: finde die älteste Person in jeder Gruppe und priorisieren alphabetisch, wenn ältere identisch sind.

sql Lösung:

SELECT o.*
FROM Persons o
LEFT JOIN Persons b ON o.Group = b.Group AND (o.Age  b.Person))
WHERE b.Person IS NULL;

Erläuterung:

Diese Abfrage verwendet eine links join , um jede Person zu vergleichen ( o ) mit allen anderen in derselben Gruppe ( b ). Die auf klausel filtert für Zeilen, wo entweder:

  1. o.age : o ist jünger als b (Bedeutung o ist nicht der älteste).
  2. .
  3. . o.age = b.age und o.person> b.person : o ist das gleiche Alter wie b , aber alphabetisch später (Bedeutung o
  4. ist nicht der älteste in alphabetischer Ordnung.

die wobei b.person null klausel ist Zeilen von o , die in b nur die älteste Person (oder alphabetisch zuerst) in jeder Gruppe hinterlassen.

.

Weitere Erforschung:

Für ein umfassenderes Verständnis der erweiterten SQL -Techniken und potenziellen Fallstricke finden Sie Ressourcen wie "SQL Antipatterns Band 1: Vermeiden Sie die Fallstricke der Datenbankprogrammierung".

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3