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>
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>
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>
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!