Rumah > pangkalan data > tutorial mysql > Bagaimana Mengira Nilai Bersyarat dalam Lajur SQL?

Bagaimana Mengira Nilai Bersyarat dalam Lajur SQL?

DDD
Lepaskan: 2025-01-09 22:52:47
asal
989 orang telah melayarinya

How to Count Conditional Values in a SQL Column?

Nilai keadaan statistik dalam lajur SQL

Andaikan anda mempunyai lajur yang dipanggil "Keutamaan" yang mengandungi nilai integer antara 1 dan 5. Anda ingin menjana carta yang menunjukkan kiraan bagi setiap nilai keutamaan. Sebagai contoh, "Keutamaan1" harus mengira bilangan baris dengan nilai "Keutamaan" 1, "Keutamaan2" harus mengira bilangan baris dengan nilai "Keutamaan" sebanyak 2 dan seterusnya.

Penyelesaian:

Untuk melakukan ini, anda boleh menggunakan pertanyaan SQL dengan fungsi agregat bersyarat:

<code class="language-sql">SELECT 
    jobID, JobName,
    SUM(CASE WHEN Priority = 1 THEN 1 ELSE 0 END) AS priority1,
    SUM(CASE WHEN Priority = 2 THEN 1 ELSE 0 END) AS priority2,
    SUM(CASE WHEN Priority = 3 THEN 1 ELSE 0 END) AS priority3,
    SUM(CASE WHEN Priority = 4 THEN 1 ELSE 0 END) AS priority4,
    SUM(CASE WHEN Priority = 5 THEN 1 ELSE 0 END) AS priority5
FROM
    Jobs
GROUP BY 
    jobID, JobName;</code>
Salin selepas log masuk

Pertanyaan ini menggunakan pengagregatan bersyarat untuk mengira bilangan baris bagi setiap nilai keutamaan. Ungkapan CASE menyemak nilai Keutamaan dan mengembalikan 1 jika ia sepadan dengan nilai keutamaan yang diperlukan, jika tidak ia mengembalikan 0. Fungsi SUM kemudian mengumpul nilai ini untuk menghasilkan kiraan akhir.

Jika anda tidak memerlukan lajur jobID dan JobName dalam hasil carian, anda boleh mengalih keluarnya daripada klausa SELECT dan mengalih keluar klausa GROUP BY:

<code class="language-sql">SELECT
    SUM(CASE WHEN Priority = 1 THEN 1 ELSE 0 END) AS priority1,
    SUM(CASE WHEN Priority = 2 THEN 1 ELSE 0 END) AS priority2,
    SUM(CASE WHEN Priority = 3 THEN 1 ELSE 0 END) AS priority3,
    SUM(CASE WHEN Priority = 4 THEN 1 ELSE 0 END) AS priority4,
    SUM(CASE WHEN Priority = 5 THEN 1 ELSE 0 END) AS priority5
FROM
    Jobs;</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana Mengira Nilai Bersyarat dalam Lajur SQL?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan