Приведенный выше код работает нормально, но я вообще не могу понять следующий шаг. Далее я хочу, чтобы все местоположения были усреднены по годам, и вывести новый столбец с именем Annual_average.
Мой набор данных здесь: https://mgs-maine.opendata.arcgis.com/datasets/maine-snow-survey-data/explore?showTable=true.
SELECT
SITE_NAME,
SURVEY_YEAR,
AVG(DEPTH) AS snow_depth,
FROM `capstone-433319.maine_snow_survey.snow_data`
WHERE
SURVEY_YEAR>=1984 AND
DEPTH>=0 AND
SITE_NAME IS NOT NULL
GROUP BY
SURVEY_YEAR,
SITE_NAME
ORDER BY
SITE_NAME
Попробуйте использовать оконную функцию для подсчета среднего значения по SITE_NAME.
SELECT
"SITE_NAME" ,
"SURVEY_YEAR" ,
AVG("DEPTH") AS snow_depth,
round(AVG("DEPTH") over (partition by "SITE_NAME"),2) as annual_average
FROM maine_snow_survey_data
WHERE
"SURVEY_YEAR">=1984 AND
"DEPTH">=0 AND
"SITE_NAME" IS NOT NULL
GROUP BY
"SURVEY_YEAR",
"SITE_NAME",
"DEPTH"
ORDER BY
"SITE_NAME";
пытаться,
AVG(DEPTH) OVER (PARTITION BY SITE_NAME, SURVEY_YEAR) AS annual_average
чтобы вычислить среднюю глубину для каждой уникальной комбинации SITE_NAME и SURVEY_YEAR.
SELECT
SITE_NAME,
SURVEY_YEAR,
AVG(DEPTH) AS snow_depth,
AVG(DEPTH) OVER (PARTITION BY SITE_NAME, SURVEY_YEAR) AS annual_average
FROM Maine_Snow_Survey_Data
WHERE
SURVEY_YEAR>=1984 AND
DEPTH>=0 AND
SITE_NAME IS NOT NULL
GROUP BY
SURVEY_YEAR,
SITE_NAME
ORDER BY
SITE_NAME
Я запустил этот код после обновления имени исходной таблицы, и он выдал самую странную ошибку: нет соответствующей подписи для оператора >= для типов аргументов: STRING, INT64. Поддерживаемая подпись: ЛЮБОЙ >= ЛЮБОЙ. Это странно, потому что до сих пор это не было проблемой. Нужно ли мне где-то привести что-то к другому типу данных?