Rumah > pangkalan data > SQL > Bagaimanakah saya menggunakan fungsi agregat (jumlah, avg, kiraan, min, max) dalam SQL?

Bagaimanakah saya menggunakan fungsi agregat (jumlah, avg, kiraan, min, max) dalam SQL?

百草
Lepaskan: 2025-03-14 18:10:39
asal
610 orang telah melayarinya

Bagaimanakah saya menggunakan fungsi agregat (jumlah, avg, kiraan, min, max) dalam SQL?

Fungsi agregat dalam SQL adalah alat yang berkuasa yang digunakan untuk melakukan pengiraan pada satu set nilai dan mengembalikan satu nilai. Mereka biasanya digunakan bersempena dengan pernyataan SELECT untuk mendapatkan maklumat statistik dari pangkalan data. Mari kita meneroka setiap fungsi agregat biasa:

  • SUM : Fungsi ini mengira jumlah jumlah lajur angka. Ia digunakan untuk menambah semua nilai dalam lajur yang ditentukan. Sebagai contoh, untuk mencari jumlah jualan dalam jadual jualan, anda akan menggunakan:

     <code class="sql">SELECT SUM(sales_amount) FROM sales;</code>
    Salin selepas log masuk
  • AVG : Fungsi ini mengira purata lajur angka. Ia sesuai untuk mencari nilai min data, seperti harga purata item yang dijual:

     <code class="sql">SELECT AVG(price) FROM products;</code>
    Salin selepas log masuk
  • Kira : Fungsi ini mengira bilangan baris yang sepadan dengan kriteria yang ditentukan. Ia biasanya digunakan untuk mendapatkan bilangan rekod dalam jadual atau bilangan nilai bukan null dalam lajur:

     <code class="sql">SELECT COUNT(*) FROM customers; -- Counts all rows in the customers table SELECT COUNT(email) FROM customers; -- Counts non-null email entries</code>
    Salin selepas log masuk
  • Min : Fungsi ini mengembalikan nilai terkecil dalam lajur yang ditentukan. Ia berguna untuk mencari nilai minimum, seperti harga terendah dalam senarai produk:

     <code class="sql">SELECT MIN(price) FROM products;</code>
    Salin selepas log masuk
  • Max : Fungsi ini mengembalikan nilai terbesar dalam lajur yang ditentukan. Ia boleh digunakan untuk mencari nilai tertinggi, seperti gaji maksimum dalam jadual pekerja:

     <code class="sql">SELECT MAX(salary) FROM employees;</code>
    Salin selepas log masuk

Bolehkah saya menggabungkan pelbagai fungsi agregat dalam pertanyaan SQL tunggal?

Ya, anda boleh menggabungkan pelbagai fungsi agregat dalam pertanyaan SQL tunggal. Ini sering berguna apabila anda perlu mendapatkan pelbagai statistik dari set data yang sama. Inilah contoh yang menunjukkan cara menggunakan SUM , AVG , dan COUNT dalam satu pertanyaan:

 <code class="sql">SELECT SUM(sales_amount) AS total_sales, AVG(sales_amount) AS average_sale, COUNT(*) AS number_of_sales FROM sales;</code>
Salin selepas log masuk

Dalam contoh ini, pertanyaan mengembalikan tiga statistik yang berbeza mengenai jadual jualan: jumlah jualan, jumlah jualan purata, dan kiraan urus niaga jualan. Dengan menggabungkan fungsi agregat dengan cara ini, anda boleh mengekstrak pelbagai maklumat ringkasan dalam satu perjalanan.

Apakah perbezaan antara menggunakan kumpulan dengan fungsi agregat dan tanpa itu?

Menggunakan GROUP BY dengan fungsi agregat membolehkan anda menggunakan fungsi kepada kumpulan baris dalam data anda, dan bukannya ke seluruh dataset. Ini adalah penting untuk menghasilkan laporan ringkasan atau statistik yang dikelompokkan oleh kriteria tertentu. Inilah perbezaannya:

  • Tanpa kumpulan oleh : Apabila anda menggunakan fungsi agregat tanpa GROUP BY , fungsi ini digunakan untuk keseluruhan set hasil. Contohnya:

     <code class="sql">SELECT AVG(salary) FROM employees;</code>
    Salin selepas log masuk

    Pertanyaan ini akan mengira gaji purata di semua pekerja dalam jadual.

  • Dengan kumpulan oleh : apabila anda menggunakan GROUP BY , fungsi agregat dikira secara berasingan untuk setiap kumpulan yang ditakrifkan oleh GROUP BY klausa. Contohnya:

     <code class="sql">SELECT department, AVG(salary) AS avg_salary FROM employees GROUP BY department;</code>
    Salin selepas log masuk

    Pertanyaan ini mengira gaji purata bagi setiap jabatan dalam jadual employees . GROUP BY klausa kumpulan baris oleh jabatan sebelum memohon fungsi AVG , yang membolehkan anda melihat statistik khusus jabatan.

Bagaimanakah saya boleh mengendalikan nilai null apabila menggunakan fungsi agregat dalam SQL?

Pengendalian nilai NULL adalah aspek penting dalam bekerja dengan fungsi agregat dalam SQL, kerana nilai NULL dapat mempengaruhi hasil pengiraan anda. Berikut adalah strategi untuk menguruskan nilai NULL dengan fungsi agregat yang berbeza:

  • SUM dan AVG : Fungsi ini secara automatik mengabaikan nilai NULL . Apabila mengira jumlah atau purata, SQL merawat NULL seolah -olah baris tidak wujud, jadi anda tidak perlu mengambil tindakan khas untuk mengendalikannya.
  • Kira : Anda boleh memilih untuk memasukkan atau mengecualikan nilai NULL dengan menggunakan COUNT(*) atau COUNT(column_name) . COUNT(*) mengira semua baris, termasuk yang mempunyai nilai NULL , sedangkan COUNT(column_name) hanya mengira nilai bukan NULL dalam lajur yang ditentukan.
  • Min dan Max : Fungsi ini juga mengabaikan nilai NULL . Mereka akan mengembalikan nilai minimum atau maksimum di antara nilai-nilai yang tidak NULL dalam lajur yang ditentukan.

Jika anda ingin memasukkan nilai NULL dalam pengiraan anda, anda boleh menggunakan fungsi COALESCE atau IFNULL untuk menggantikan NULL dengan nilai lalai. Sebagai contoh, untuk mengira semua baris termasuk nilai NULL dalam lajur tetapi merawat NULL sebagai sifar untuk SUM , anda boleh menggunakan:

 <code class="sql">SELECT COUNT(*) AS total_rows, SUM(COALESCE(sales_amount, 0)) AS total_sales FROM sales;</code>
Salin selepas log masuk

Dalam pertanyaan ini, COALESCE menggantikan mana -mana NULL sales_amount dengan 0 sebelum SUM dikira, yang membolehkan nilai NULL menyumbang kepada jumlah sifar.

Atas ialah kandungan terperinci Bagaimanakah saya menggunakan fungsi agregat (jumlah, avg, kiraan, min, max) dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan