PIVOT
This SQL transforms rows into columns by map_agg function.
SELECT
uid,
kv['c1'] AS c1,
kv['c2'] AS c2,
kv['c3'] AS c3
FROM (
SELECT uid, map_agg(key, value) kv
FROM vtable
GROUP BY uid
) t
UNPIVOT
CROSS JOIN unnest function is similar to LATERAL VIEW explode function. It also transforms columns into rows.
SELECT t1.uid, t2.key, t2.value
FROM htable t1
CROSS JOIN unnest (
array['c1', 'c2', 'c3'],
array[c1, c2, c3]
) t2 (key, value)
详细参考下面的连接
本文介绍使用SQL中的PIVOT和UNPIVOT操作来转换数据的方法。PIVOT操作通过map_agg函数将行转为列,而UNPIVOT则通过CROSS JOIN unnest函数将列转为行。这两种方法在数据整理和分析中非常有用。
9547

被折叠的 条评论
为什么被折叠?



