我有一个包含如下表的模式(伪模式):
TABLE ItemCollection {
ItemCollectionId
...etc...
}
TABLE Item {
ItemId,
ItemCollectionId,
ContributorId
}
我需要汇总每个 ItemCollectionId 的不同贡献者的数量。这可以通过如下查询来实现:
SELECT ItemCollectionId, COUNT(DISTINCT ContributorId) FROM Item
GROUP BY ItemCollectionId
我还想使用索引(物化)视图预先计算此聚合。DISTINCT 防止在此视图上放置索引。有什么方法可以重新制定这不会违反 SQL Server 的索引视图约束?