【发布时间】:2015-11-18 03:29:08
【问题描述】:
我一直在尝试找出可以用来创建索引视图的聚合类型。仅供参考:我可以用SUM() 创建一个。我还发现我无法使用MIN、MAX 和AVG 创建索引视图。其他人呢?有可能的?我在网上找不到任何信息,也无法在我的比赛中使用。
【问题讨论】:
标签: sql aggregate-functions indexed-view
我一直在尝试找出可以用来创建索引视图的聚合类型。仅供参考:我可以用SUM() 创建一个。我还发现我无法使用MIN、MAX 和AVG 创建索引视图。其他人呢?有可能的?我在网上找不到任何信息,也无法在我的比赛中使用。
【问题讨论】:
标签: sql aggregate-functions indexed-view
根据TechNet,索引视图支持标量聚合。至于为什么不支持 Min/Max,见this answer。
【讨论】:
sqlmag.com 说:
对列进行索引排序、分组和聚合
您还需要考虑对用于排序的列和在分组表达式中使用的列进行索引。您可能会受益于对 MIN()、MAX()、COUNT()、SUM() 和 AVG() 函数用于聚合数据的列进行索引。当您使用MIN() 和MAX() 函数时,SQL Server 会分别对列中的最小值和最大值进行简单的查找。如果索引的数据值是按升序排列的,SQL Server 可以读取索引来快速确定MIN() 或MAX() 的正确值。值范围查询包含一个过滤器或约束(在SELECT 查询的WHERE 子句或HAVING 子句中表示)来限制查询返回的行。同样,当您拥有索引时,您可以优化数据排序(通过使用ORDER BY 子句)和数据分组(通过使用GROUP BY 子句),尤其是当您查询的一个或多个表包含许多行时。
【讨论】: