Pregunta

Tengo un esquema que incluye tablas como la siguiente (pseudo esquema):

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

TABLE Item {
   ItemId,
   ItemCollectionId,
   ContributorId

}

Me necesidad de agregar el número de contribuyentes distintos por ItemCollectionId. Esto es posible con una consulta como:

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

Quiero más para pre-calcular esta agregación usando un (materializado) vista indizada. Los evita DISTINCT un índice que se colocan en este punto de vista. ¿Hay alguna manera de reformular esto lo que no violará indexados limitaciones vista de SQL Server?

¿Fue útil?

Solución

No es posible, por lo visto.

Otros consejos

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

Un agregado requerirá COUNT_BIG (*) como se ha mencionado en MSDN .

Esto también dice "no diferenciados" y no estoy seguro (nunca había probado, lo siento) si esto se aplica a su uso en un agregado (como que tiene), o SELECT DISTINCT...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top