У меня есть запрос в BigQuery.Я хочу знать средние за четверть.С моим текущим SQL значения для периода Q1 для id1
одинаковы для id2
.
Это то, что у меня было, и значения были хорошими:
row|averages|quarter|identifier
-----------------------------
1 | 10 | 1 | id1
2 | 20 | 2 | id1
3 | 30 | 1 | id2
4 | 40 | 2 | id2
Вот SQL, который я написал для приведенной выше структуры, которая дает хорошие значения:
WITH
index_cal AS (
SELECT
values-01,
kind,
EXTRACT (QUARTER FROM date) as QUARTER,
date,
FROM
`project.dataset.table`,
geom AS (
SELECT
identifier
FROM
`project.dataset.table2` )
SELECT
AVG(values-01) AS averages,
QUARTER AS quarter,
geom. identifier as identifier
FROM
index_cal as g
INNER JOIN
geom
ON
INTERSECTS(g.kind,
geom. identifier)
GROUP BY
identifier
quarter
Я хотел сгруппировать значения для каждого квартала по идентификатору так, чтобы у каждого идентификатора была только 1 связанная строка:
row | averages | quarter | identifier
----------------------------------
1 | 10 | 1 | id1
| 20 | 2 |
----------------------------------
2 | 30 | 1 | id2
| 40 | 2 |
----------------------------------
Чтобы получить желаемую структуру так, чтобы у id1 была только 1 связанная строка и аналогично для всех идентификаторов, я написал этот SQL-запрос:
WITH
index_cal AS (
SELECT
values-01,
kind,
EXTRACT (QUARTER FROM date) as QUARTER,
date,
FROM
`project.dataset.table`,
geom AS (
SELECT
identifier
FROM
`project.dataset.table2` )
SELECT
ARRAY(
SELECT
AS STRUCT AVG(values-01) AS averages,
QUARTER AS quarter
FROM
index_cal
GROUP BY
QUARTER ) as INDEX,
geom. identifier as identifier
FROM
index_cal AS g
INNER JOIN
geom
ON
INTERSECTS(g.kind,
geom. identifier)
GROUP BY
identifier
При выполнении этого запроса я получаю средние значения для всех идентификаторов.сгруппированы по кварталам так, что значения (например, 15 и 25 в этом случае) повторяются для всех идентификаторов:
row | averages | quarter | identifier
----------------------------------
1 | 15 | 1 | id1
| 25 | 2 |
----------------------------------
2 | 15 | 1 | id2
| 25 | 2 |
----------------------------------
2 | 15 | 1 | id3
| 25 | 2 |
----------------------------------
В конце я хочу ответить на среднее значение values-01
на квартальной основена identifier
.В настоящее время они одинаковы для любого значения identifier
.