Rumah >pangkalan data >tutorial mysql >Bagaimana Mengira Keutamaan Pekerjaan Menggunakan Pertanyaan SQL Bersyarat?

Bagaimana Mengira Keutamaan Pekerjaan Menggunakan Pertanyaan SQL Bersyarat?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-10 10:02:44263semak imbas

How to Count Job Priorities Using Conditional SQL Queries?

Gunakan pertanyaan kiraan bersyarat untuk analisis keutamaan

Dalam analisis data, pengiraan bersyarat selalunya diperlukan untuk mengekstrak maklumat daripada data kategori. Pertimbangkan jadual yang mengandungi lajur "jobId", "jobName" dan "Keutamaan", dengan julat "Keutamaan" dari 1 hingga 5. Kita perlu membuat pertanyaan yang mengira bilangan baris untuk setiap tahap keutamaan.

Pertanyaan menggunakan pernyataan KES:

Pertanyaan berikut menggunakan pernyataan CASE untuk melakukan pengiraan bersyarat bagi setiap tahap keutamaan:

<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>

Untuk setiap baris, pernyataan CASE menyemak sama ada nilai "Keutamaan" sepadan dengan nombor yang ditentukan (contohnya, Keutamaan1 ialah 1). Ungkapan mengembalikan 1 jika benar dan 0 jika salah. Fungsi SUM kemudiannya mengagregatkan nilai-nilai ini terhadap setiap kumpulan (ditentukan oleh "jobId" dan "jobName").

Alih keluar jobID dan jobName:

Jika anda tidak memerlukan "jobId" dan "jobName" disertakan dalam keputusan, anda boleh mengalih keluarnya dengan mengubah suai klausa SELECT dan 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>

Pertanyaan ringkas ini hanya akan mengembalikan kiraan syarat untuk setiap tahap keutamaan.

Atas ialah kandungan terperinci Bagaimana Mengira Keutamaan Pekerjaan Menggunakan Pertanyaan SQL Bersyarat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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