1. ホーム
  2. sql

[解決済み】複数列のDISTINCTをカウントする

2022-04-02 09:30:28

質問

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

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

私はこのテーブルから明確な項目の数を数える必要がありますが、明確なのは2つの列にわたっています。

私のクエリは問題なく動作しますが、1つのクエリだけで(サブクエリを使用せずに)最終結果を得ることができるかどうか疑問に思っています。

どのように解決するのですか?

パフォーマンスを向上させたい場合は、2つのカラムのハッシュ値または連結値に対して、永続化された計算カラムを作成してみるとよいでしょう。

一旦永続化されると、カラムが決定論的であり、"sane" データベース設定を使用している場合、インデックス化および/または統計情報の作成が可能になります。

計算されたカラムのdistinct countは、あなたのクエリと同等であると信じています。