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'))   

如果应用于您问题中的示例数据 - 输出为