Я пытаюсь работать с общедоступным набором данных bigquery-public-data.austin_crime.crime
BigQuery. Моя цель состоит в том, чтобы получить выходные данные в виде трех столбцов, которые показывают
описание (преступления), их количество и район для данного конкретного описания (преступления).
Я могу получить первые два столбца с этим запросом.
select
a.description,
count(*) as district_count
from `bigquery-public-data.austin_crime.crime` a
group by description order by district_count desc
и надеялся, что я смогу сделать это с помощью одного запроса, а затем я попытался это сделать, чтобы получить третий столбец, показывающий мне Верхний район для этого конкретного описания (преступления), добавив код ниже
select
a.description,
count(*) as district_count,
(
select district from
( select
district, rank() over(order by COUNT(*) desc) as rank
FROM `bigquery-public-data.austin_crime.crime`
where description = a.description
group by district
) where rank = 1
) as top_District
from `bigquery-public-data.austin_crime.crime` a
group by description
order by district_count desc
Ошибка, которую я получаю, заключается в следующем. «Коррелированные подзапросы, которые ссылаются на другие таблицы, не поддерживаются, если их нельзя декоррелировать, например, путем преобразования их в эффективное JOIN.»
Я думаю, что могу сделать это, присоединившись. Может у кого-то есть лучшее решение, возможно, сделать это, используя без объединения.