我有一个包括以下表(伪模式)的表格的模式:

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