Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengira Nilai Lajur dengan Cekap dalam SQL?

Bagaimanakah Saya Boleh Mengira Nilai Lajur dengan Cekap dalam SQL?

Barbara Streisand
Barbara Streisandasal
2024-12-28 06:04:09521semak imbas

How Can I Efficiently Count Column Values in SQL?

Mengira Nilai Lajur dalam SQL dengan Cekap

Untuk mengira kejadian nilai lajur dalam jadual SQL dengan cekap, seseorang boleh memanfaatkan kuasa fungsi pengagregatan . Dalam contoh yang diberikan, tugasnya adalah untuk menentukan kiraan pelajar bagi setiap nilai umur yang unik. Pendekatan mudah melibatkan penggunaan subkueri, tetapi timbul kebimbangan mengenai potensi ketidakcekapannya.

Kaedah alternatif, yang selalunya lebih cekap, ialah menggunakan klausa GROUP BY bersama-sama dengan fungsi COUNT(). Sintaks untuk pertanyaan sedemikian ialah:

SELECT column_name, COUNT(column_name)
FROM table_name
GROUP BY column_name;

Menggunakan teknik ini pada jadual pelajar yang diberikan menghasilkan pertanyaan berikut:

SELECT age, COUNT(age) 
FROM Students
GROUP BY age;

Pertanyaan ini mengumpulkan pelajar mengikut umur dan mengira kejadian daripada setiap nilai umur. Hasilnya ialah jadual dengan dua lajur: umur dan kiraan, di mana setiap baris mewakili nilai umur yang unik dan kiraan sepadan pelajar dengan umur tersebut.

Jika lajur id jadual asal juga diperlukan dalam hasil carian, pertanyaan di atas boleh dilanjutkan dengan memasukkannya ke dalam senarai SELECT dan menggunakan INNER JOIN dengan subquery yang melakukan pengumpulan dan pengiraan operasi:

SELECT S.id, S.age, C.cnt
FROM Students S
INNER JOIN (SELECT age, COUNT(age) AS cnt
             FROM Students 
             GROUP BY age) C ON S.age = C.age;

Pendekatan yang dioptimumkan ini memastikan pengiraan nilai lajur yang cekap dalam jadual SQL, mengelakkan potensi kesesakan prestasi yang dikaitkan dengan subkueri.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Nilai Lajur dengan Cekap dalam SQL?. 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