Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mencari Rekod Maksimum untuk Setiap Kumpulan dalam SQL?

Bagaimana untuk Mencari Rekod Maksimum untuk Setiap Kumpulan dalam SQL?

Mary-Kate Olsen
Lepaskan: 2025-01-07 21:47:41
asal
218 orang telah melayarinya

How to Find the Maximum Record for Each Group in SQL?

Cari rekod terbesar mengikut kumpulan dalam SQL

Dalam pengurusan pangkalan data, selalunya perlu mendapatkan semula rekod terbesar dalam setiap kumpulan data. Pertimbangkan senario berikut.

Soalan:

Anda mempunyai jadual dengan tiga medan: "Nama", "Atas" dan "Jumlah", dengan data berikut:

Name Top Total
cat 1 10
dog 2 7
cat 3 20
horse 4 4
cat 5 10
dog 6 9

Tugas anda ialah mencari rekod dengan nilai "Jumlah" terbesar untuk setiap nilai "Nama" unik. Hasil yang diingini hendaklah:

Name Top Total
cat 3 20
horse 4 4
dog 6 9

Penyelesaian:

Untuk mendapatkan semula rekod maksimum bagi setiap kumpulan, anda boleh menggunakan pertanyaan berikut:

<code class="language-sql">select
  Name, Top, Total
from
  sometable
where
  Total = (select max(Total) from sometable i where i.Name = sometable.Name)</code>
Salin selepas log masuk

Pertanyaan ini membandingkan nilai "Jumlah" setiap rekod dengan nilai "Jumlah" maksimumnya dalam kumpulan "Nama" yang sama. Kemudian pilih rekod yang nilai "Jumlah"nya sepadan.

Sebagai alternatif, anda boleh menggunakan subkueri untuk mencapai hasil yang sama:

<code class="language-sql">select
  Name, Top, Total
from
  sometable
  inner join (
    select max(Total) as Total, Name
    from sometable
    group by Name
  ) as max on max.Name = sometable.Name and max.Total = sometable.Total</code>
Salin selepas log masuk

Pertanyaan ini mula-mula menggunakan subkueri untuk mengira nilai "Jumlah" maksimum untuk setiap "Nama" unik. Pertanyaan utama kemudiannya bergabung dengan jadual dengan subquery untuk memilih hanya rekod dengan nilai "Jumlah" maksimum yang sepadan.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Rekod Maksimum untuk Setiap Kumpulan dalam 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