〜 20M 行のデータセットがあり、次の動作を観察しています。
以下のクエリは、「応答が大きすぎて返すことができません」というエラーを返します。「id」フィールドは複数のレコード間で共有され、「フィールド」フィールドには各レコードの任意の値があります。結果セットには、クエリ応答の制限をはるかに下回る 10 行のみが含まれているはずです。
SELECT id, COUNT(DISTINCT field)
FROM [my.dataset]
GROUP BY id
LIMIT 10
ただし、COUNT 集計関数から DISTINCT キーワードを削除すると、BigQuery は予想どおり 10 個の結果を返します。
SELECT id, COUNT(field)
FROM [my.dataset]
GROUP BY id
LIMIT 10
最初のクエリがエラーを返し、2 番目のクエリが正常に完了する理由がわかりません。両方のクエリが同じ数の行を返すべきではありませんか?