Rumah > pangkalan data > tutorial mysql > Bagaimana Mencari Orang Tertua dalam Setiap Kumpulan Menggunakan SQL?

Bagaimana Mencari Orang Tertua dalam Setiap Kumpulan Menggunakan SQL?

Mary-Kate Olsen
Lepaskan: 2025-01-23 22:37:11
asal
473 orang telah melayarinya

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

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>
Salin selepas log masuk

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:

  • Menggunakan INNER JOIN akan secara salah mengetepikan orang yang paling lama daripada kumpulan dengan hanya seorang ahli.
  • Kaedah ini ialah teknik yang sangat cekap dan disyorkan secara meluas untuk jenis pertanyaan ini. Pendekatan serupa dibincangkan dalam "SQL Antipatterns Jilid 1: Mengelak Masalah Pengaturcaraan Pangkalan Data".

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan