Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Pivot Panjang ke Data Format Lebar dalam SQLite Menggunakan CASE dan GROUP BY?

Bagaimana untuk Pivot Panjang ke Data Format Lebar dalam SQLite Menggunakan CASE dan GROUP BY?

Linda Hamilton
Lepaskan: 2025-01-10 13:01:46
asal
807 orang telah melayarinya

How to Pivot Long to Wide Format Data in SQLite Using CASE and GROUP BY?

Tukar data jadual daripada format panjang kepada lebar menggunakan SQLite

Dalam analisis data, selalunya perlu untuk menukar data daripada format panjang (setiap baris mewakili satu rekod dan berbilang lajur mewakili nilai berbeza) kepada format lebar (setiap rekod menduduki berbilang lajur). Operasi ini dipanggil pivoting.

Kami mempunyai jadual yang dipanggil markdetails dengan struktur berikut:

  • studid subjectid marks

    A1 3 50
    A1 4 60
    A1 5 70
    B1 3 60
    B1 4 80
    C1 5 95

Terdapat juga jadual bernama student_info dengan struktur berikut:

  • studid name

    <code>  A1          Raam
      B1          Vivek
      c1          Alex</code>
    Salin selepas log masuk

Kami mahu memutar data ini ke dalam format lebar berikut:

  • studid name subjectid_3 subjectid_4 subjectid_5

    <code>  A1        Raam        50                60                 70
      B1        Vivek       60                80                NULL
      c1        Alex       NULL              NULL                95</code>
    Salin selepas log masuk

Satu cara untuk melakukan ini ialah menggunakan pernyataan CASE dengan GROUP BY. Pertanyaan berikut akan mengembalikan format lebar yang diperlukan:

<code class="language-sql">SELECT
    si.studid,
    si.name,
    SUM(CASE WHEN md.subjectid = 3 THEN md.marks END) AS subjectid_3,
    SUM(CASE WHEN md.subjectid = 4 THEN md.marks END) AS subjectid_4,
    SUM(CASE WHEN md.subjectid = 5 THEN md.marks END) AS subjectid_5
FROM student_info si
JOIN markdetails md ON
    md.studid = si.studid
GROUP BY si.studid, si.name;</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Pivot Panjang ke Data Format Lebar dalam SQLite Menggunakan CASE dan GROUP BY?. 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