Ответ 1
В BigQuery COUNT DISTINCT является статистическим приближением для всех результатов, превышающих 1000.
Вы можете предоставить необязательный второй аргумент, чтобы дать порог, в котором используются аппроксимации. Поэтому, если вы используете COUNT (DISTINCT BankId, 10000) в своем примере, вы должны увидеть точный результат (поскольку фактическое количество строк меньше 10000). Обратите внимание, однако, что использование большего порога может быть дорогостоящим с точки зрения производительности.
Смотрите полную документацию здесь: https://developers.google.com/bigquery/docs/query-reference#aggfunctions
UPDATE 2017:
С BigQuery #standardSQL COUNT(DISTINCT)
всегда точная. Для приблизительных результатов используйте APPROX_COUNT_DISTINCT()
. Зачем кому-то использовать приблизительные результаты? См. статью.