個別の値を集約するSQLサーバーインデックス付きビューを策定する方法は?

StackOverflow https://stackoverflow.com/questions/2732231

質問

次のようなテーブルを含むスキーマ(擬似スキーマ)があります。

TABLE ItemCollection {
   ItemCollectionId
   ...etc...
}

TABLE Item {
   ItemId,
   ItemCollectionId,
   ContributorId

}

ItemCollectionIDごとに異なる貢献者の数を集約する必要があります。これは、次のようなクエリで可能です。

SELECT ItemCollectionId, COUNT(DISTINCT ContributorId) FROM Item
 GROUP BY ItemCollectionId

さらに、インデックス付き(具体化された)ビューを使用して、この集約を事前計算したいと考えています。明確なことに、このビューにインデックスが配置されるのを防ぎます。 SQL Serverのインデックス付きビューの制約に違反しないこれを再定式化する方法はありますか?

役に立ちましたか?

解決

どうやら不可能です。

他のヒント

SELECT
   ItemCollectionId,
   COUNT(DISTINCT ContributorId),
   COUNT_BIG(*) AS DummyColumn
FROM Item
GROUP BY ItemCollectionId

集計にはcount_big(*)が必要です MSDNで述べたように.

これも「明確ではない」と書かれていますが、これが(あなたが持っているように)それが使用されている場合、またはそれが使用されている場合、または(あなたが持っているように)かどうかはわかりません(試したことはありません) SELECT DISTINCT...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top