個別の値を集約するSQLサーバーインデックス付きビューを策定する方法は?
-
02-10-2019 - |
質問
次のようなテーブルを含むスキーマ(擬似スキーマ)があります。
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...
所属していません StackOverflow