我有包括如下所示的(僞模式)的表的模式:如何制定聚合不同值的SQL Server索引視圖?
TABLE ItemCollection {
ItemCollectionId
...etc...
}
TABLE Item {
ItemId,
ItemCollectionId,
ContributorId
}
我需要聚合每ItemCollectionId不同供體的數目。這是可能的,如下所示:
SELECT ItemCollectionId, COUNT(DISTINCT ContributorId) FROM Item
GROUP BY ItemCollectionId
我還想使用索引(物化)視圖預先計算此聚合。 DISTINCT可防止在此視圖上放置索引。有沒有什麼方法來重新構建這個不會違反SQL Server的索引視圖約束?
沒有骰子,只要嘗試創建聚簇唯一索引,DISTINCT就會立即殺死它。 – jlew 2010-04-28 19:33:49
@Jeremy Lew:在這種情況下,您將不得不使用觸發器維護一張表格,恐怕... – gbn 2010-04-29 04:44:24