Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Memilih Baris Pertama Setiap Kumpulan dalam MySQL?

Bagaimana untuk Memilih Baris Pertama Setiap Kumpulan dalam MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-11-04 19:54:02466semak imbas

How to Select the First Row of Each Group in MySQL?

Cara Memilih Baris Pertama untuk Setiap Kumpulan dalam MySQL

Apabila bekerja dengan data dalam MySQL, selalunya perlu mengambil hanya baris pertama setiap kumpulan berdasarkan kriteria tertentu. Walaupun Linq-To-Sql menyediakan cara yang mudah untuk mencapai ini dalam C# menggunakan kaedah GroupBy dan Select, kod T-SQL yang terhasil tidak serasi dengan MySQL.

MySQL menawarkan cara yang mudah dan cekap untuk memilih yang pertama baris untuk setiap kumpulan menggunakan subpilihan. Begini caranya:

  1. Buat subkueri untuk mendapatkan semula kunci utama kumpulan yang dikehendaki. Gunakan klausa GROUP BY untuk mengumpulkan baris dan kemudian gunakan MIN( ) fungsi pengagregatan untuk mendapatkan nilai kunci utama minimum bagi setiap kumpulan.
SELECT MIN(id) AS group_id
FROM sometable
GROUP BY somecolumn
  1. Gunakan subkueri sebagai syarat dalam pertanyaan utama untuk memilih data sebenar. Tapis baris dalam pertanyaan utama menggunakan ID kumpulan yang diperoleh daripada subkueri.
SELECT somecolumn, anothercolumn 
FROM sometable 
WHERE id IN (
    SELECT group_id
    FROM (
        SELECT MIN(id) AS group_id
        FROM sometable
        GROUP BY somecolumn
    ) AS subquery
);

Pertanyaan ini secara berkesan akan mendapatkan semula baris pertama untuk setiap kumpulan berdasarkan lajur beberapa lajur, memastikan data adalah teratur dan mudah diproses.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris Pertama Setiap Kumpulan dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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