【发布时间】:2015-09-30 13:09:13
【问题描述】:
我正在尝试编写一个将返回一个数字(平均值)的存储过程 - 这就是我目前所拥有的......
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)
所以这有效并给了我
A.) 总评分
B.) 评分条目数
我想从存储过程中返回 Rating Total / Rating Entries。
谁能帮我看看语法吗?
【问题讨论】:
-
看起来您正在尝试计算平均值..
select avg(rating) from dbo.RecipeRating?对吗? -
不知道有 avg 函数....我现在知道了 :-) 谢谢
-
旁注:您应该不为您的存储过程使用
sp_前缀。微软有reserved that prefix for its own use (see Naming Stored Procedures),你确实会在未来某个时候冒着名称冲突的风险。 It's also bad for your stored procedure performance。最好只是简单地避免sp_并使用其他东西作为前缀 - 或者根本不使用前缀!
标签: sql sql-server stored-procedures sum aggregate