BigQuery:transformrowintocolumnsdynamically
创始人
2024-12-12 09:30:14
0

在BigQuery中,将一行转换为列可以使用UNPIVOT操作。但是,如果要动态地将行转换为列,则必须编写动态SQL查询。以下是一种可能的代码示例:

1.首先,您需要生成动态SELECT语句,以将每个行值转换为列。

WITH transform_cols_sql AS ( SELECT STRING_AGG( CONCAT( "MAX(CASE WHEN column_name='", REPLACE(column_name, "'", "''"), "' THEN column_value END) AS ", REPLACE(column_name, "'", "''") ), ", " ) AS sql, COUNT() AS num_cols FROM ( SELECT column_name, COUNT() as num_rows FROM your_table, UNNEST(REGEXP_EXTRACT_ALL(TO_JSON_STRING(your_table), r'"([^"]+?)":')) AS column_name WHERE column_name NOT IN ('$schema') GROUP BY 1 ) )

2.使用生成的SQL来将每行转换为列。

EXECUTE IMMEDIATE CONCAT( "SELECT ", transform_cols_sql.sql, " FROM your_table" )

这将使用生成的SQL动态地将行转换为列。请注意,此查询假设表中每个列具有相同的数据类型,并且在使用字符串连接函数STRING_AGG时对特殊字符进行了转义。

相关内容

热门资讯

两分钟黑科技!喜喜斗地主有挂吗... 两分钟黑科技!喜喜斗地主有挂吗,wepokeai代打逻辑(详细透视辅助软件教程);亲,其实确实真的有...
五分钟教程!天涯麻将有脚本吗,... 五分钟教程!天涯麻将有脚本吗,微扑克app发牌规律(详细透视辅助app教程)准备好在天涯麻将有脚本吗...
1分钟辅助挂!情怀麻将,智星德... 1分钟辅助挂!情怀麻将,智星德州辅助(详细透视辅助app教程);原来确实真的有挂(需添加指定薇757...
七分钟方法!八闽十三张十三水有... 七分钟方法!八闽十三张十三水有外挂吗,wpk透视辅助可测试真的(详细透视辅助神器教程);亲真的是有正...
3分钟技巧!丽水都莱有辅助吗,... 3分钟技巧!丽水都莱有辅助吗,德州全自动辅助(详细透视辅助软件教程);精心打造了俱乐部社区互动功能,...
四分钟技巧!闲玩随机暗宝有规律... 自定义闲玩随机暗宝有规律吗系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,...
9分钟黑科技!聚乐麻将有挂吗,... 《聚乐麻将有挂吗软件透明挂》是一款多人竞技的聚乐麻将有挂吗辅助透视游戏,你将微扑克对手来到同一个战场...
5分钟详情!随意玩科技真的假的... 1、5分钟详情!随意玩科技真的假的,德扑之星实战(详细透视辅助工具教程);该软件可以轻松地帮助玩家将...
两分钟技巧!大宝麻将辅牌器是什... 两分钟技巧!大宝麻将辅牌器是什么,微扑克ai辅助工具(详细透视辅助黑科技教程);亲真的是有正版授权,...
8分钟了解!南通长牌有外挂吗,... 8分钟了解!南通长牌有外挂吗,wpk真的有挂(详细透视辅助软件教程);实战中需综合运用上述技巧,并根...