gpt4 book ai didi

google-bigquery - 如何使用 BigQuery 模拟数据透视表?

转载 作者:行者123 更新时间:2023-12-02 15:04:20 26 4
gpt4 key购买 nike

我需要按列组织查询结果,就像数据透视表一样。我怎样才能做到这一点?

最佳答案

2020 更新:fhoffa.x.pivot()

<小时/>

使用条件语句将查询结果组织为行和列。在下面的示例中,对以值“Google”开头的大多数修订的维基百科文章的搜索结果被组织到列中,如果这些文章符合各种条件,则在其中显示修订计数。

SELECT
page_title,
/* Populate these columns as True or False, depending on the condition */
IF(page_title CONTAINS 'search', INTEGER(total), 0) AS search,
IF(page_title CONTAINS 'Earth' OR page_title CONTAINS 'Maps', INTEGER(total), 0) AS geo,
FROM
/* Subselect to return top revised Wikipedia articles containing 'Google'
* followed by additional text.
*/
(SELECT
TOP(title, 5) as page_title,
COUNT(*) as total
FROM
[publicdata:samples.wikipedia]
WHERE
REGEXP_MATCH (title, r'^Google.+') AND wp_namespace = 0
);

结果:

+---------------+--------+------+
| page_title | search | geo |
+---------------+--------+------+
| Google search | 4261 | 0 |
| Google Earth | 0 | 3874 |
| Google Chrome | 0 | 0 |
| Google Maps | 0 | 2617 |
| Google bomb | 0 | 0 |
+---------------+--------+------+

类似的示例,不使用子查询:

SELECT SensorType, DATE(DTimestamp), AVG(data) avg, 
FROM [data-sensing-lab:io_sensor_data.moscone_io13]
WHERE DATE(DTimestamp) IN ('2013-05-16', '2013-05-17')
GROUP BY 1, 2
ORDER BY 2, 3 DESC;

生成一个 3 列表:传感器类型、日期和平均数据。要“旋转”并将日期作为列:

SELECT
SensorType,
AVG(IF(DATE(DTimestamp) = '2013-05-16', data, null)) d16,
AVG(IF(DATE(DTimestamp) = '2013-05-17', data, null)) d17
FROM [data-sensing-lab:io_sensor_data.moscone_io13]
GROUP BY 1
ORDER BY 2 DESC;

关于google-bigquery - 如何使用 BigQuery 模拟数据透视表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19414609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com