ホームページ > データベース > mysql チュートリアル > Hive COUNT(*) クエリで表示される行数が、NULL 以外の count クエリよりも少ないのはなぜですか?

Hive COUNT(*) クエリで表示される行数が、NULL 以外の count クエリよりも少ないのはなぜですか?

Patricia Arquette
リリース: 2025-01-12 07:16:41
オリジナル
178 人が閲覧しました

Why Does My Hive COUNT(*) Query Show Fewer Rows Than My Non-NULL Count Query?

Hive クエリ数の差: 空でない数が合計数より大きい

Hive では、行数の計算に関する興味深い現象が観察されました。 mytable という名前のテーブルがあり、それに master_id という名前のフィールドが含まれているとします。次のクエリを実行すると、取得される行の総数は 1,129,563 になります:

<code class="language-sql">SELECT COUNT(*) AS c FROM mytable;</code>
ログイン後にコピー

ただし、空ではない master_id 値を持つ行の数をクエリすると、カウントは 1,134,041 に増加します。

<code class="language-sql">SELECT COUNT(*) AS c FROM mytable WHERE master_id IS NOT NULL;</code>
ログイン後にコピー

この違いは、デフォルトで WHERE 句のないクエリが統計を使用して行数を推定する可能性があるために発生します。この問題を解決するには、パラメータ hive.compute.query.using.stats を false に設定して統計的推定を無効にします。

または、ANALYZE TABLE ステートメントを使用して明示的にテーブル統計を計算するか、INSERT OVERWRITE 操作を介してデータを一括インポートするときに を true に設定して統計を収集することもできます。これにより、正確で一貫したクエリ結果が保証され、このような予期しない結果が回避されます。 hive.stats.autogather

以上がHive COUNT(*) クエリで表示される行数が、NULL 以外の count クエリよりも少ないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート