Bagaimanakah saya boleh menggunakan pengagregatan bersyarat dalam MySQL untuk mengira dan menjumlahkan nilai berdasarkan kriteria tertentu?

Patricia Arquette
Lepaskan: 2024-11-16 08:41:03
asal
425 orang telah melayarinya

How can I use conditional aggregation in MySQL to count and sum values based on specific criteria?

MySQL: Pengagregatan Bersyarat dengan 'SUM IF' dan 'COUNT IF'

Fungsi pengagregatan seperti SUM dan COUNT adalah penting untuk meringkaskan data dalam MySQL. Walau bagaimanapun, bagaimana jika anda perlu menggunakan syarat pada pengagregatan anda? Di sinilah pengagregatan bersyarat memainkan peranan.

Pertimbangkan senario di mana anda mempunyai jadual dengan dua lajur: 'jam' dan 'jenis'. Anda ingin mengira dan menjumlahkan nilai 'jam' berdasarkan sama ada nilai 'jenis' yang sepadan ialah 1. Fungsi pengagregatan tradisional sahaja tidak dapat menangani perkara ini.

Untuk menyelesaikan masalah ini, MySQL menawarkan pernyataan CASE, yang membolehkan anda untuk menentukan syarat tersuai untuk pengagregatan. Berikut ialah pertanyaan yang disemak menggunakan pernyataan CASE:

SELECT count(id), 
    SUM(hour) as totHour, 
    SUM(case when kind = 1 then 1 else 0 end) as countKindOne
Salin selepas log masuk

Dalam pertanyaan ini, pernyataan CASE menyemak sama ada nilai 'jenis' adalah sama dengan 1. Jika benar, ia mengembalikan 1; jika tidak, ia mengembalikan 0. Hasilnya kemudian dijumlahkan menggunakan fungsi SUM() untuk mengira kejadian 'jenis' bersamaan dengan 1.

Dengan menggunakan pengagregatan bersyarat dengan pernyataan CASE, anda boleh menapis dan mengagregat dengan berkesan data anda berdasarkan kriteria tertentu. Teknik berkuasa ini membuka pelbagai kemungkinan untuk analisis dan manipulasi data dalam MySQL.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan pengagregatan bersyarat dalam MySQL untuk mengira dan menjumlahkan nilai berdasarkan kriteria tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan