Mengira kejadian nilai dalam lajur ialah tugas biasa dalam pertanyaan pangkalan data. Dalam perbincangan ini, kita akan meneroka pendekatan yang cekap untuk mengira kejadian umur dalam jadual pelajar.
Pertimbangkan jadual dengan struktur berikut:
id | age -------- 0 | 25 1 | 25 2 | 23
Objektif kami adalah untuk membuat pertanyaan yang mengembalikan maklumat pelajar bersama-sama dengan kiraan pelajar yang mempunyai umur yang sama, seperti yang ditunjukkan di bawah:
id | age | count ---------------- 0 | 25 | 2 1 | 25 | 2 2 | 23 | 1
Untuk mencapai pengiraan nilai lajur yang cekap, kami boleh menggunakan kod SQL berikut:
SELECT age, count(age) FROM Students GROUP BY age
Pertanyaan ini menghapuskan penggunaan sub -pertanyaan, yang boleh memberi kesan ketara kepada prestasi. Dengan mengumpulkan hasil pada lajur umur, kami mengira kejadian untuk setiap nilai umur dengan berkesan.
Jika struktur jadual asal memerlukan kemasukan lajur id, kami boleh menggunakan sub-pertanyaan seperti berikut:
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 sub-pertanyaan ini membolehkan kami memasukkan lajur id sambil mengekalkan kecekapan operasi mengira.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Nilai Lajur dengan Cekap dalam SQL Sambil Mengekalkan Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!