在SQL Server 2012中指定计算列作为平均值

时间:2016-03-25 14:23:56

标签: sql sql-server-2012

我可以在SQL Server中指定一个平均另一列的计算列吗?

所以例如

CREATE TABLE dbo.Sales 
(
    TimeOfSale dateTime,
    AmountOfSale money,
    TotalSalesForMonth AS ?(Sum(AmountOfSale) over TimeofSale by month),
    AverageForMonth AS ?(Sum(AmountOfSale) over TimeofSale by month / # sales per month)
);

我确定我可以将其作为存储过程执行并创建另一个表,但我只是好奇是否可以使用计算列进行此操作。

1 个答案:

答案 0 :(得分:2)

是的,您可以这样做,但您必须编写一个UDF来计算聚合并在Computed列定义中调用UDF。

请注意,虽然可以这样做,但这可能不是最好的主意:https://blogs.msdn.microsoft.com/sqlcat/2011/11/28/a-computed-column-defined-with-a-user-defined-function-might-impact-query-performance/