我有一个类似的表格
记分表
id | ||
---|---|---|
12345 | ABC | >td style="text align:central;">400|
12345 | PQR | >td style="text align:central;">650|
12345 | XYZ | 350 |
考虑以下使用PIVOT、的查询
SELECT * FROM (
SELECT *, ROW_NUMBER() OVER (PARTITION BY id) rn
FROM sample_table
) PIVOT (ANY_VALUE(item) type, ANY_VALUE(score) score FOR rn IN (1, 2, 3));
查询结果
+-------+--------+---------+--------+---------+--------+---------+
| id | type_1 | score_1 | type_2 | score_2 | type_3 | score_3 |
+-------+--------+---------+--------+---------+--------+---------+
| 12345 | XYZ | 350 | PQR | 650 | ABC | 400 |
+-------+--------+---------+--------+---------+--------+---------+