1

我认为计数栏有问题。

SELECT ColumnC, ColumnA % ColumnB AS ModuloColAColB, COUNT_BIG(*) AS cBig FROM dbo.T1
GROUP BY ColumnC, ModuloColAColB 

查询类似于此 MSDN 示例:http: //msdn.microsoft.com/en-us/library/ms191432.aspx

当我尝试编译视图时,我收到如下错误消息:“无效的列名 ModuloColAColB”

所以我按列名更改组:

SELECT ColumnC, ColumnA % ColumnB AS ModuloColAColB,
COUNT_BIG(*) AS cBig FROM dbo.T1
GROUP BY ColumnC, ColumnA, ColumnB

View 正在正确编译,但是当我尝试添加索引时,我收到错误:

"Cannot create the clustered index 'px_test' on view 'l' because the select list of the view contains an expression on result of aggregate function or grouping column.
Consider removing expression on result of aggregate function or grouping column from select list"

当我删除“ ColumnA % ColumnB AS ModuloColAColB”时,一切正常。

数据库版本:SQL server 2005 企业版。

4

1 回答 1

1

试试GROUP BY ColumnC, ColumnA % ColumnB

从您的链接:

..不能包含... GROUP BY 子句中使用的列的表达式,或聚合结果的表达式。

我认为这意味着您不能按列对您的组取模。但是,您应该能够在 GROUP BY 中执行表达式并在 select 子句中简单地重复

于 2009-12-04T12:50:00.790 回答