Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何返回SQL Server存储过程的计算(聚合)结果_Sql_Sql Server_Stored Procedures_Sum_Aggregate - Fatal编程技术网

如何返回SQL Server存储过程的计算(聚合)结果

如何返回SQL Server存储过程的计算(聚合)结果,sql,sql-server,stored-procedures,sum,aggregate,Sql,Sql Server,Stored Procedures,Sum,Aggregate,我正在尝试编写一个存储过程,它将返回一个数字(一个平均值)-这就是我目前所拥有的 ALTER PROCEDURE [dbo].[sp_GetAverageRating] @RecipeNodeId int AS SET NOCOUNT ON; (SELECT SUM(Rating) AS RatingTotal FROM dbo.RecipeRating WHERE RecipeNodeId = @RecipeNodeId) (SELE

我正在尝试编写一个存储过程,它将返回一个数字(一个平均值)-这就是我目前所拥有的

ALTER PROCEDURE [dbo].[sp_GetAverageRating]
    @RecipeNodeId int 
AS 
    SET NOCOUNT ON;

    (SELECT SUM(Rating) AS RatingTotal
     FROM dbo.RecipeRating
     WHERE RecipeNodeId = @RecipeNodeId)

    (SELECT 
         COUNT(Rating) AS RatingEntries 
     FROM dbo.RecipeRating 
     WHERE RecipeNodeId = @RecipeNodeId)
所以这很有效,给了我

总评级
B.)评级条目的数量

我想从存储过程中返回额定值总计/额定值条目


谁能帮我解释一下语法吗?

只需使用AVG函数:

SELECT AVG(Rating) as RatingTotal
FROM dbo.RecipeRating
WHERE RecipeNodeId = @RecipeNodeId

看起来您正在尝试计算平均值。
从dbo中选择平均值(评级)。是否继续?是这样吗?我不知道有一个avg函数…我现在知道:-)thanksSide注意:您不应该在存储过程中使用
sp
前缀。微软已经这样做了,而且你确实有可能在将来的某个时候发生名称冲突。最好只是简单地避免使用
sp.
并使用其他东西作为前缀,或者根本不使用前缀!也许将其放在UDF而不是大讨论中更有意义<代码>创建函数fnAvgRating(@RecipeNodeId int)返回十进制作为从dbo中选择平均值(评级)。其中RecipeNodeId=@RecipeNodeId