使用 BigQuery 按月检索 AVG 温度?

iTu*_*rki 1 sql weather google-bigquery

使用该fh-bigquery:weather_gsod数据集,我想检索特定国家/地区所有站点的一些每月天气数据。也就是说,我想要从 1929 年至今的月平均温度、月平均最大值和月平均最小值。

这是我写的内容,是为了从 2015 年的一张表中检索我需要的内容。我得到的数据似乎是正确的:

SELECT stn, FIRST(name) AS station_name, mo, (AVG(temp)-32)*0.5556 AS temp, (AVG(max)-32)*0.5556 AS max, (AVG(min)-32)*0.5556 AS min
FROM [fh-bigquery:weather_gsod.gsod2015] gsod
JOIN [fh-bigquery:weather_gsod.stations2] stations
ON gsod.wban=stations.wban AND gsod.stn=stations.usaf
WHERE country='SA' 
GROUP BY stn, mo
ORDER BY mo
Run Code Online (Sandbox Code Playgroud)

假设这个查询确实检索到了我需要的信息,我该如何重写它以便可以包含整个范围(1929 到 2016)?

Mik*_*ant 5

您应该为此 使用表通配符函数,如下所示

SELECT 
  stn, 
  FIRST(name) AS station_name, 
  mo, 
  (AVG(temp)-32)*0.5556 AS temp, 
  (AVG(max)-32)*0.5556 AS max, 
  (AVG(min)-32)*0.5556 AS min
FROM (
  SELECT * FROM
  (TABLE_QUERY([fh-bigquery:weather_gsod], 'table_id CONTAINS "gsod"')) 
) gsod
JOIN [fh-bigquery:weather_gsod.stations2] stations
ON gsod.wban=stations.wban AND gsod.stn=stations.usaf
WHERE country='SA' 
GROUP BY stn, mo
ORDER BY mo
Run Code Online (Sandbox Code Playgroud)