ich diese Art der Tabelle haben:Gruppierung von unterschiedlicher Güte und wissen, wie viel Grad sind sie
Problem UserID Grade
Probleme1 ID1 33
Probleme1 ID2 100
Probleme1 ID4 57
Probleme1 ID6 57
Probleme1 ID78 24
Probleme1 ID5 24
Probleme2 ID1 37
Probleme2 ID12 88
Probleme2 ID6846 100
Probleme2 ID2 2
Was ich zu erreichen bin versucht, es ist eine Tabelle zu erstellen, die enthält:
- Für jedes Problem, die gesamte Palette von Noten (von 0 bis 100, auch wenn niemand hatte eine 87 für dieses Problem, ich will es mit einem Wert 0 angezeigt werden)
- Für jede Klasse (für jedes Problem), die Anzahl der Personen, die diese Note erhalten haben.
So habe ich versuchen smth wie dies zu tun:
DROP TABLE IF EXISTS Problem_Grades_Point;
CREATE TABLE Problem_Grades_Point (
Platform VARCHAR(20),
AnalyticsDomain VARCHAR(255),
ShortTitle VARCHAR(255),
Problem VARCHAR(255),
Grade0 INT,
Grade10 INT,
Grade20 INT,
INDEX (Problem)
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_bin;
INSERT INTO Problem_Grades_Point
SELECT
Platform,
AnalyticsDomain,
ShortTitle,
Problem,
COUNT(Problem) AS Grade0,
0 as Grade10,
0 as Grade20
FROM First_Attempt_Problem_Grades
WHERE First_Grade = 0
GROUP BY Problem
UNION ALL
SELECT
Platform,
AnalyticsDomain,
ShortTitle,
Problem,
0 as Grade0,
COUNT(t.Problem) AS Grade10,
0 as Grade20
FROM First_Attempt_Problem_Grades t
WHERE First_Grade = 10
GROUP BY Problem
UNION ALL
SELECT
Platform,
AnalyticsDomain,
ShortTitle,
Problem,
0 as Grade0,
0 as Grade10,
COUNT(Problem) AS Grade20
FROM First_Attempt_Problem_Grades
WHERE First_Grade = 20
GROUP BY Problem
Natürlich ist es nicht alles I und natürlich wollen, es funktioniert nicht. Es zeigt nur das Ergebnis für die Klasse 0. Alle anderen Sorten leer sind wie folgt:
Wie kann ich diese SOV Gemeinschaft tun? :)
Muss ich unbedingt eine Prozedur erstellen? – Joff
Was bedeuten 'SOV'? –
Mmf, mein Schlechter, ich wollte SOF sagen (Stack Over Flow) – Joff