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

在SQL Server 2012中指定一个计算列作为平均值,sql,sql-server-2012,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 mo

我可以在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)
);

我确信我可以作为一个存储过程来做这件事,并生成另一个表,但我只是好奇是否可以用计算列来做这件事

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


请注意,虽然可以这样做,但这可能不是最好的主意:

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


请注意,虽然可以这样做,但这可能不是最好的主意:

我没有,我不确定计算列会是什么样子。是的,这是可能的。但要做到这一点,计算列必须是UDF的结果。我没有,我不确定计算列会是什么样子。是的,这是可能的。但要做到这一点,计算列必须是UDF的结果。