Ich habe eine Tabelle wie soPivot Zeilen in Spalten basierend auf Zustand
id student_id score
1 1 45
2 2 55
3 2 75
4 3 80
5 1 90
6 2 78
7 3 55
8 1 45
9 1 65
möchte ich es wie dieses ist
student_id s1 s2 s3 s4
1 45 90 45 65
2 55 75 78 -
3 80 55 - -
das Konzept der Dreh arrangieren
SELECT
item_id,
MAX(IF(property_name = 'property_value1', value, NULL)) AS alias1,
MAX(IF(property_name = 'property_value2', value, NULL)) AS alias2,
...
...
...
FROM
table
GROUP BY
item_id;
die Ich kann in meinem Fall nicht wirklich herausfinden, wie ich die Spalten s1 - s4 nach Vorkommen erstelle, dh die erste Punktzahl für jeden Schüler wird s1, Sekunde wird s2 usw.
, wie ich diese
danken Ihnen sehr, wie stelle ich ein Bindestrich (-), wenn es keine Punktzahl ist – Smith
@Smith. . . Das ist härter als es scheint. 'score' ist - vermutlich - eine Zahl und ein Strich ist eine Zeichenkette. Sie müssen also mit Tippfehlern umgehen. Diese Art der Transformation wird oft in der Anwendungsschicht durchgeführt. –