Heim > Datenbank > MySQL-Tutorial > Wie finde ich die älteste Person in jeder Gruppe in SQL?

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

DDD
Freigeben: 2025-01-23 22:52:10
Original
638 Leute haben es durchsucht

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

Effizientes Abrufen der am höchsten bewerteten Datensätze in gruppierten SQL-Daten

Dieses Beispiel zeigt, wie man die älteste Person innerhalb jeder Gruppe in einer SQL-Tabelle identifiziert und dabei die alphabetische Reihenfolge berücksichtigt, um Gleichstände aufzulösen. Die Tabellenstruktur umfasst die Spalten „Person“, „Gruppe“ und „Alter“:

Beispieltabelle:

Person Group Age
Bob 1 32
Jill 1 34
Shawn 1 42
Jake 2 29
Paul 2 36
Laura 2 39

Ziel: Finden Sie die älteste Person in jeder Gruppe und priorisieren Sie sie alphabetisch, wenn das Alter identisch ist.

SQL-Lösung:

<code class="language-sql">SELECT o.*
FROM Persons o
LEFT JOIN Persons b ON o.Group = b.Group AND (o.Age < b.Age OR (o.Age = b.Age AND o.Person > b.Person))
WHERE b.Person IS NULL;</code>
Nach dem Login kopieren

Erklärung:

Diese Abfrage verwendet ein LEFT JOIN, um jede Person (o) mit allen anderen in derselben Gruppe (b) zu vergleichen. Die ON-Klausel filtert nach Zeilen, in denen entweder:

  1. o.Age < b.Age: o ist jünger als b (d. h. o ist nicht der Älteste).
  2. o.Age = b.Age AND o.Person > b.Person: o ist genauso alt wie b, aber alphabetisch später (was bedeutet, dass o nicht der älteste in alphabetischer Reihenfolge ist).

Die WHERE b.Person IS NULL-Klausel filtert alle Zeilen aus o heraus, die in b eine Übereinstimmung hatten, sodass in jeder Gruppe nur die älteste Person (oder alphabetisch zuerst, wenn es einen Gleichstand gibt) übrig bleibt.

Weitere Erkundung:

Ein umfassenderes Verständnis fortgeschrittener SQL-Techniken und möglicher Fallstricke finden Sie in Ressourcen wie „SQL Antipatterns Band 1: Vermeidung der Fallstricke der Datenbankprogrammierung.“

Das obige ist der detaillierte Inhalt vonWie finde ich die älteste Person in jeder Gruppe in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage