Mengenalpasti Orang Tertua dalam Setiap Kumpulan Dengan Cekap Menggunakan SQL
Pertanyaan pangkalan data selalunya memerlukan mencari nilai maksimum dalam kumpulan tertentu. Contoh ini menunjukkan cara untuk menentukan orang tertua dalam setiap kumpulan daripada jadual dengan lajur person
, group
dan age
.
Penyelesaian:
Pendekatan ini memanfaatkan LEFT JOIN
untuk membandingkan umur setiap orang dalam kumpulan mereka. Baris tanpa padanan mewakili orang tertua dalam kumpulan itu.
Pelaksanaan:
<code class="language-sql">SELECT o.* FROM Persons o LEFT JOIN Persons b ON o.Group = b.Group AND o.Age < b.Age WHERE b.Age IS NULL;</code>
Penjelasan:
Persons o
: Jadual Persons
dialiaskan sebagai o
(untuk "tertua").LEFT JOIN Persons b
: A LEFT JOIN
dilakukan dengan jadual Persons
alias sebagai b
(untuk "umur yang lebih besar"). Ini menggabungkan setiap baris dalam o
dengan baris dalam kumpulan yang sama (o.Group = b.Group
) yang mempunyai umur yang lebih besar (o.Age < b.Age
).WHERE b.Age IS NULL
: Klausa penting ini menapis keputusan. Jika seseorang dalam o
tiada padanan dalam b
(bermaksud b.Age
ialah NULL), ini menandakan tiada seorang pun dalam kumpulan mereka yang lebih tua. Oleh itu, hanya orang yang paling tua daripada setiap kumpulan dipilih.Pertimbangan Penting:
INNER JOIN
akan secara salah mengetepikan orang yang paling lama daripada kumpulan dengan hanya seorang ahli.Atas ialah kandungan terperinci Bagaimana Mencari Orang Tertua dalam Setiap Kumpulan Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!