Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengira Baris Bersyarat dengan Keutamaan dalam SQL?

Bagaimana untuk Mengira Baris Bersyarat dengan Keutamaan dalam SQL?

Mary-Kate Olsen
Lepaskan: 2025-01-10 07:39:45
asal
574 orang telah melayarinya

How to Efficiently Count Conditional Rows by Priority in SQL?

SQL dengan cekap mengira baris bersyarat yang diisih mengikut keutamaan

Andaikan anda mempunyai jadual yang menyimpan maklumat kerja, dengan lajur yang menunjukkan keutamaan (integer antara 1 dan 5). Untuk menjana laporan carta yang memaparkan kiraan kerja mengikut keutamaan, anda perlu mencipta lima medan tambahan, setiap satunya mengira bilangan baris dengan nilai keutamaan tertentu.

Penyelesaian terletak pada penggunaan pernyataan CASE dalam pertanyaan SELECT. Kod berikut menyediakan cara yang cekap dan berprestasi untuk mencapai output yang anda inginkan:

<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 pada asasnya menggunakan fungsi SUM() untuk mengira bilangan baris bagi setiap tahap keutamaan. Walau bagaimanapun, ia juga menggunakan pernyataan CASE untuk mengecualikan baris yang tidak memenuhi syarat keutamaan tertentu. Hasilnya ialah jadual dengan medan tambahan yang mewakili kiraan keadaan.

Untuk memasukkan hanya kiraan kerja dan bukan jobID dan JobName dalam keputusan, cuma alih keluar lajur ini daripada penyataan SELECT dan alih keluar klausa GROUP BY.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Baris Bersyarat dengan Keutamaan dalam 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan