用表grades
保存下列學生的等級直方圖,需要unpivot它將列名轉換爲索引。不支持離散值的直方圖數據
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);
等級可以索引到數值 - 例如下面的例子。
+-------------+--------+
| grade | value |
+-------------+--------+
| grade_poor | 1 |
| grade_fair | 2 |
| grade_good | 3 |
| grade_vgood | 4 |
+-------------+--------+
預計輸出
+-------+-------+
| 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 |
+-------+-------+
答問here表明這樣做的Postgres的方式。
名稱是唯一的還是存在id列? – GurV
@GurV他們可以被認爲是uniq。 – user3206440