Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengubah Lajur dengan betul dalam SQL Menggunakan CASE WHEN dan GROUP BY?

Bagaimana untuk Mengubah Lajur dengan betul dalam SQL Menggunakan CASE WHEN dan GROUP BY?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-11 15:56:41640semak imbas

How to Correctly Pivot Columns in SQL Using CASE WHEN and GROUP BY?

Pivot lajur SQL menggunakan CASE WHEN dan betulkan pernyataan GROUP BY

Penerangan masalah:

Untuk memutar lajur dalam jadual kepada berbilang lajur berdasarkan syarat tertentu, pertanyaan SQL boleh menggunakan ungkapan CASE WHEN. Walau bagaimanapun, apabila melaksanakan kaedah ini, pengguna mungkin mengalami hasil yang tidak betul kerana tiada pengelompokan.

Pertanyaan:

Untuk menyelesaikan isu ini, pertanyaan yang diubah suai termasuk fungsi agregat SUM() dan kumpulan yang betul disediakan di bawah:

<code class="language-sql">SELECT 
  name,
  SUM(CASE WHEN val = 1 THEN amount ELSE 0 END) AS amountVal1,
  SUM(CASE WHEN val = 2 THEN amount ELSE 0 END) AS amountVal2
FROM bank GROUP BY name</code>

Penjelasan:

  • Fungsi SUM() hendaklah digunakan dalam ungkapan CASE WHEN untuk mengira jumlah amaun setiap val (1 dan 2) bagi setiap nama.
  • Klausa KUMPULAN MENGIKUT nama mengumpulkan hasil mengikut lajur nama, memastikan amaun bagi setiap nama berbeza dijumlahkan dengan betul.

Keputusan yang dijangkakan:

Pertanyaan yang dipertingkatkan ini akan menghasilkan output yang diingini:

name amountVal1 amountVal2
John 2000 1888
Peter 1999 1854

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Lajur dengan betul dalam SQL Menggunakan CASE WHEN dan GROUP BY?. 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