Mengira Kejadian Nilai Lajur dalam SQL dengan Cekap
Apabila berurusan dengan set data yang luas, menentukan kekerapan nilai lajur tertentu adalah penting untuk analisis data. Kes penggunaan biasa ialah mengira bilangan pelajar dengan umur yang sama dalam jadual pangkalan data. Walaupun subqueries boleh digunakan untuk tugas ini, kebimbangan timbul mengenai prestasi mereka. Nasib baik, SQL menawarkan penyelesaian alternatif yang mengutamakan kecekapan.
Menghapuskan Bottleneck Prestasi Subkueri
Kebimbangan bahawa subkueri boleh menghalang prestasi adalah sah, kerana ia melibatkan pertanyaan bersarang yang boleh mahal secara pengiraan. Untuk mengelakkan perangkap ini, pertimbangkan semula pendekatan tanpa menggunakan subkueri.
Menggunakan Pengagregatan untuk Pengiraan Nilai Cekap
Satu kaedah yang cekap untuk mengira kejadian nilai lajur ialah memanfaatkan pengagregatan SQL keupayaan. Klausa GROUP BY memainkan peranan penting dalam teknik ini. Sebagai contoh, untuk mengira bilangan pelajar bagi setiap umur yang unik, pertanyaan berikut boleh digunakan:
SELECT age, COUNT(age) FROM Students GROUP BY age;
Pertanyaan ini mengumpulkan pelajar berdasarkan umur mereka dan mengembalikan umur bersama-sama dengan kiraan pelajar yang berkongsi itu umur.
Memelihara Data Baris Individu
Jika data pelajar asal, termasuk lajur ID, diperlukan di samping maklumat kiraan umur, subkueri masih boleh digabungkan dengan cara yang lebih cekap:
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;
Dalam pertanyaan ini, subkueri mengira pengiraan umur dan menyimpannya dalam jadual sementara C. Pertanyaan utama kemudian menyertai jadual Pelajar dengan C untuk mendapatkan kedua-dua data pelajar individu dan kiraan umur. Pendekatan ini mengelakkan pengiraan berlebihan dan memastikan prestasi optimum.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Kejadian Nilai Lajur dengan Cekap dalam SQL Tanpa Kesesakan Prestasi Subkueri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!