SQL 到 select 具有多个不同的 WHERE/转置/枢轴 table?
SQL to select with multiple different WHEREs / transpose / pivot table?
这适用于 BigQuery SQL
我有一些数据,例如
版本
颜色
v1
红色
v2
蓝色
我想把它变成这样的输出格式:
v1
v2
红色
蓝色
我想这是一个经典的转置,但不确定最好的方法。我尝试了嵌套查询:
select * from
(select color from table where version = 'v1'),
(select color from table where version = 'v2')
(从我的真实列等名称中简化查询!)
但这为我提供了具有不同 v1 版本的每个项目的多行
我发现的大多数示例似乎都复杂得多。
https://towardsdatascience.com/pivot-in-bigquery-4eefde28b3be
感谢对基本枢轴或 groupby 或最佳转置方式的帮助?
更新它几乎可以工作,但由于字段名称的原因而失败。
select *
from (
select agent, text, expect
from `my.data.runs`
)
pivot (
min(expect) as expect,
min(agent) as agent
for agent in ("august-mr")
)
Invalid field name "expect_august-mr".
如果我的代理被命名为 'august_mr',它工作正常!
无论如何,是否可以尝试在代理的值中转义或启用破折号?
只是简单的枢轴,如下例所示
select *
from table
pivot (min(color) for version in ('v1', 'v2'))
如果应用于您问题中的示例数据 - 输出为
这适用于 BigQuery SQL
我有一些数据,例如
版本 | 颜色 |
---|---|
v1 | 红色 |
v2 | 蓝色 |
我想把它变成这样的输出格式:
v1 | v2 |
---|---|
红色 | 蓝色 |
我想这是一个经典的转置,但不确定最好的方法。我尝试了嵌套查询:
select * from
(select color from table where version = 'v1'),
(select color from table where version = 'v2')
(从我的真实列等名称中简化查询!)
但这为我提供了具有不同 v1 版本的每个项目的多行
我发现的大多数示例似乎都复杂得多。 https://towardsdatascience.com/pivot-in-bigquery-4eefde28b3be
感谢对基本枢轴或 groupby 或最佳转置方式的帮助?
更新它几乎可以工作,但由于字段名称的原因而失败。
select *
from (
select agent, text, expect
from `my.data.runs`
)
pivot (
min(expect) as expect,
min(agent) as agent
for agent in ("august-mr")
)
Invalid field name "expect_august-mr".
如果我的代理被命名为 'august_mr',它工作正常! 无论如何,是否可以尝试在代理的值中转义或启用破折号?
只是简单的枢轴,如下例所示
select *
from table
pivot (min(color) for version in ('v1', 'v2'))
如果应用于您问题中的示例数据 - 输出为