Ошибка BigQuery «Ответ слишком велик для возврата» при использовании COUNT (DISTINCT…)

У меня есть набор данных с ~ 20M строками, и я наблюдаю следующее поведение.

Приведенный ниже запрос возвращает ошибку «Ответ слишком велик для возврата». «Идентификатор» поле является общим для нескольких записей, а поле 'apos;' поле имеет произвольное значение для каждой записи. Я ожидаю, что результирующий набор должен содержать только 10 строк, что значительно ниже предела ответа на запрос.

SELECT id, COUNT(DISTINCT field)
FROM [my.dataset]
GROUP BY id
LIMIT 10

Однако когда ключевое слово DISTINCT удаляется из функции агрегирования COUNT, BigQuery возвращает 10 результатов, как и ожидалось.

SELECT id, COUNT(field)
FROM [my.dataset]
GROUP BY id
LIMIT 10

Я не понимаю, почему первый запрос возвращает ошибку, а второй завершается успешно. Разве оба запроса не возвращают одинаковое количество строк?

Ответы на вопрос(1)

Ваш ответ на вопрос