相关疑难解决方法(0)

在BigQuery中将行转换为列(Pivot实现)

我想生成一个新表,并使用BigQuery将所有键值对作为列名和值作为各自的值放置.

例:

**Key**                  **Value**
channel_title           Mahendra Guru    
youtube_id              ugEGMG4-MdA  
channel_id              UCiDKcjKocimAO1tV    
examId                  72975611-4a5e-11e5   
postId                  1189e340-b08f 

channel_title           Ab Live  
youtube_id              3TNbtTwLY0U  
channel_id              UCODeKM_D6JLf8jJt    
examId                  72975611-4a5e-11e5   
postId                  0c3e6590-afeb
Run Code Online (Sandbox Code Playgroud)

我想将其转换为:

**channel_title   youtube_id   channel_id         examId               postId**
Mahendra Guru   ugEGMG4-MdA  UCiDKcjKocimAO1tV  72975611-4a5e-11e5   1189e340-b08f
Ab Live         3TNbtTwLY0U  UCODeKM_D6JLf8jJt  72975611-4a5e-11e5   0c3e6590-afeb
Run Code Online (Sandbox Code Playgroud)

如何使用BigQuery做到这一点?

sql google-bigquery google-cloud-platform

12
推荐指数
1
解决办法
1万
查看次数

如何在Big Query中透视表

我正在使用Google Big Query,并且我正在尝试从公共示例数据集中获取透视结果.

对现有表的简单查询是:

SELECT * 
FROM publicdata:samples.shakespeare
LIMIT 10;
Run Code Online (Sandbox Code Playgroud)

此查询返回以下结果集.

在此输入图像描述

现在我要做的是,从表中获得结果,如果单词是勇敢的,选择"BRAVE"作为column_1,如果单词出席,选择"ATTENDED"作为column_2,并聚合单词计数对于这2.

这是我正在使用的查询.

SELECT
(CASE WHEN word = 'brave' THEN 'BRAVE' ELSE '' END) AS column_1,
(CASE WHEN word = 'attended' THEN 'ATTENDED' ELSE '' END) AS column_2,
SUM (word_count)
FROM publicdata:samples.shakespeare
WHERE (word = 'brave' OR word = 'attended')
GROUP BY column_1, column_2
LIMIT 10;
Run Code Online (Sandbox Code Playgroud)

但是,此查询返回数据

在此输入图像描述

我在寻找的是

在此输入图像描述

我知道这个数据集的这个数据集没有意义.但我只是以此为例来解释这个问题.如果你可以为我提供一些指示,那将是很棒的.

编辑:我还提到了如何使用BigQuery模拟数据透视表?它似乎也有我在这里提到的相同问题.

google-bigquery

10
推荐指数
3
解决办法
2万
查看次数