Heim > Datenbank > MySQL-Tutorial > Wie kann man in SQLite mithilfe von CASE und GROUP BY Daten im Langformat in Breitformat umwandeln?

Wie kann man in SQLite mithilfe von CASE und GROUP BY Daten im Langformat in Breitformat umwandeln?

Linda Hamilton
Freigeben: 2025-01-10 13:01:46
Original
848 Leute haben es durchsucht

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

Konvertieren Sie tabellarische Daten mit SQLite vom Lang- ins Breitformat

Bei der Datenanalyse ist es oft notwendig, Daten vom Langformat (jede Zeile stellt einen Datensatz dar und mehrere Spalten stellen unterschiedliche Werte dar) in das Breitformat (jeder Datensatz belegt mehrere Spalten) zu konvertieren. Dieser Vorgang wird Schwenken genannt.

Wir haben eine Tabelle namens markdetails mit folgender Struktur:

  • studid subjectid marks

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

Es gibt auch eine Tabelle namens student_info mit folgender Struktur:

  • studid name

    <code>  A1          Raam
      B1          Vivek
      c1          Alex</code>
    Nach dem Login kopieren

Wir möchten diese Daten in das folgende Breitformat umwandeln:

  • 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>
    Nach dem Login kopieren

Eine Möglichkeit, dies zu tun, besteht darin, die CASE-Anweisung mit GROUP BY zu verwenden. Die folgende Abfrage gibt das erforderliche Breitformat zurück:

<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>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann man in SQLite mithilfe von CASE und GROUP BY Daten im Langformat in Breitformat umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage