Flink SQL提供了行转列的功能,可以通过使用UNPIVOT
操作来实现。UNPIVOT
操作可以将行转换为列,它可以将一些列中的值逆规整到行上。
例如,假设我们有一个数据表,其中包含id
、name
和score_math
、score_english
、score_science
等列,我们可以使用以下SQL语句将这些列转换为一列:
SELECT id, name, subject, score
FROM (
SELECT id, name, score_math, score_english, score_science
FROM student
) UNPIVOT (
score FOR subject IN (score_math, score_english, score_science)
)
这将把score_math
、score_english
、score_science
这三列转换为一列,列名为subject
,列值为相应的分数。