sql - 在 BigQuery 中将列转置为行
问题描述
对于 BigQuery,如何将列“Ds Hrc Shm”、“Ds Orc Cwp”...转置为行,并将“sku”中的行转置为列并保持内部的值相同
从
SKU | Ds Hrc Shm | Ds Orc Cwp | Ds Orc Mwp
DB-MIX-HTS 1 1 1
DB-ORC-TUS 0 1 1
进入
DB-MIX-HTS | DB-ORC-TUS
Ds Hrc Shm 1 0
Ds Orc Cwp 1 1
Ds Orc Mwp 1 1
我应该使用 pivot / unvipot 还是任何简单的方法?
我尝试使用数据透视,但我无法在 IN 中声明列标题
SELECT *
FROM
(
SELECT `manual_input.sku_translations`.`ds_hrc_shm` AS `ds_hrc_shm`,
`manual_input.sku_translations`.`sku` AS `sku_1`,
FROM `manual_input.sku_translations`
)
PIVOT
(
SUM(`ds_hrc_shm`) FOR `sku_1` IN (['DB-ORC-TWS'], ['DB-MIX-SGT'])
)
解决方案
考虑以下方法
select * from (
select * replace(replace(SKU, '-', '_') as SKU)
from `manual_input.sku_translations`
unpivot (value for col in (`Ds Hrc Shm`, `Ds Orc Cwp`, `Ds Orc Mwp`))
)
pivot (any_value(value) for SKU in ('DB_MIX_HTS', 'DB_ORC_TUS'))
是否适用于您问题中的样本数据
with `manual_input.sku_translations` as (
select 'DB-MIX-HTS' SKU, 1 as `Ds Hrc Shm`, 1 as `Ds Orc Cwp`, 1 as `Ds Orc Mwp` union all
select 'DB-ORC-TUS', 0, 1, 1
)
输出是
推荐阅读
- python - 与(状态,动作)对一起使用的最佳 Deep-DQN 实现
- jquery - 如何从 JSON 字符串中删除动态 Cookie
- python-3.x - 计算滚动 3 天熊猫的不同计数?
- spring-boot - 将 spring boot 升级到 2.4.4 后,得到“LeaseAwareVaultPropertySource : Vault location [secret/application] not resolvable: Not found”
- ar.js - 是否可以使用 AR.js 将图像跟踪与标记混合?
- javascript - 我怎样才能循环遍历直到我用 puppeteer 点击元素
- mongodb - GoLang Mongo GeoJSON
- python - 取消包装或取消继承对象
- maven - 在将 maven 依赖项添加到 hadoop-azure 后,Webapp 失败并显示“JBAS011232:只允许一个 JAX-RS 应用程序类”
- c# - 一位用户收到 SharpSvn 错误“无法加载文件或程序集 'SharpSvn'...试图加载格式不正确的程序”