Rumah > pangkalan data > tutorial mysql > Bagaimana Mengira Nilai Lajur Bersyarat dalam SQL: Contoh Berasaskan Keutamaan?

Bagaimana Mengira Nilai Lajur Bersyarat dalam SQL: Contoh Berasaskan Keutamaan?

Mary-Kate Olsen
Lepaskan: 2025-01-10 06:56:43
asal
351 orang telah melayarinya

How to Count Conditional Column Values in SQL:  A Priority-Based Example?

kiraan lajur bersyarat SQL

Pertimbangkan jadual yang dipanggil "Pekerjaan" dengan struktur berikut:

<code>jobId, jobName, Priority</code>
Salin selepas log masuk

Di mana "Keutamaan" ialah integer antara 1 dan 5.

Pernyataan masalah:

Anda perlu membuat pertanyaan yang mengira bilangan baris untuk setiap tahap keutamaan (1 hingga 5) dalam jadual "Pekerjaan". Pertanyaan harus mengembalikan lajur yang dinamakan "Keutamaan1" melalui "Keutamaan5", yang mewakili kiraan ini.

Penyelesaian:

Untuk melakukan ini, gunakan pernyataan SQL berikut:

<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

Penjelasan:

  • Penyata CASE menilai lajur "Keutamaan" setiap baris.
  • Jika "Keutamaan" adalah sama dengan nilai yang ditentukan (1, 2, 3, 4 atau 5), maka ia menyumbang 1 kepada kiraan.
  • Jika "Keutamaan" tidak sama dengan nilai yang ditentukan, ia menyumbang 0.
  • Fungsi SUM mengagregatkan kiraan ini untuk setiap tahap keutamaan.
  • Klausa GROUP BY mengumpulkan hasil mengikut "jobId" dan "jobName" (dengan andaian anda mahu memasukkan lajur ini dalam hasil carian).

NOTA: Jika anda ingin mengecualikan "jobId" dan "jobName", hanya alih keluar mereka daripada klausa SELECT dan GROUP BY.

Atas ialah kandungan terperinci Bagaimana Mengira Nilai Lajur Bersyarat dalam SQL: Contoh Berasaskan Keutamaan?. 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