Avec une table grades
qui contient l'histogramme des notes pour les étudiants comme ci-dessous, il faut unpivot convertir les noms de colonnes en index.données d'histogramme non-pivot des valeurs discrètes
CREATE TABLE grades
AS
SELECT name, exams, grade_poor, grade_fair, grade_good, grade_vgood
FROM (VALUES
('arun' , 8 , 1 , 4 , 2 , 1),
('neha' , 10 , 3 , 2 , 1 , 4),
('ram' , 5 , 1 , 1 , 3 , 0),
('radha' , 8 , 0 , 3 , 1 , 4)
) AS t(name,exams,grade_poor,grade_fair,grade_good,grade_vgood);
Les nuances peuvent être indexées en valeurs numériques - par exemple comme ci-dessous.
+-------------+--------+
| grade | value |
+-------------+--------+
| grade_poor | 1 |
| grade_fair | 2 |
| grade_good | 3 |
| grade_vgood | 4 |
+-------------+--------+
Sortie prévue
+-------+-------+
| name | grade |
+-------+-------+
| arun | 1 |
| arun | 2 |
| arun | 2 |
| arun | 2 |
| arun | 2 |
| arun | 3 |
| arun | 3 |
| arun | 4 |
| neha | 1 |
| neha | 1 |
| neha | 1 |
| neha | 2 |
| neha | 2 |
| neha | 3 |
| neha | 4 |
| neha | 4 |
| neha | 4 |
| neha | 4 |
| radha | 2 |
| radha | 2 |
| radha | 2 |
| radha | 3 |
| radha | 4 |
| radha | 4 |
| radha | 4 |
| radha | 4 |
| ram | 1 |
| ram | 2 |
| ram | 3 |
| ram | 3 |
| ram | 3 |
+-------+-------+
La question et la réponse here montre le chemin postgres de le faire.
sont des noms uniques ou existe-t-il une colonne id? – GurV
@GurV ils peuvent être considérés comme uniq. – user3206440