如何返回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