複数の列でDISTINCTをカウントする 質問する

複数の列でDISTINCTをカウントする 質問する

次のようなクエリを実行するより良い方法はありますか?

SELECT COUNT(*) 
FROM (SELECT DISTINCT DocumentId, DocumentSessionId
      FROM DocumentOutputItems) AS internalQuery

このテーブルから個別の項目の数をカウントする必要がありますが、個別の項目は 2 列以上あります。

クエリは正常に動作しますが、サブクエリを使用せずに 1 つのクエリのみを使用して最終結果を取得できるかどうか疑問に思っています。

ベストアンサー1

パフォーマンスを向上させたい場合は、2 つの列のハッシュ値または連結値のいずれかに永続化された計算列を作成してみてください。

一度永続化されると、列が決定論的であり、「正常な」データベース設定を使用している限り、その列にインデックスを付けたり、統計を作成したりすることができます。

計算列の個別のカウントがクエリと同等になると思います。

おすすめ記事