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

标签 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)

    (SELECT 
         COUNT(Rating) AS RatingEntries 
     FROM dbo.RecipeRating 
     WHERE RecipeNodeId = @RecipeNodeId)

所以这有效并给了我

A.) 评分总计
B.) 评级条目数量

我想从存储过程返回评级总计/评级条目。

谁能帮我解决语法问题吗?

最佳答案

只需使用AVG函数:

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

关于sql - 如何返回 SQL Server 存储过程的计算(聚合)结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32866986/

相关文章:

c# - 在 Asp.Net MVC 5 中使用 Entity Framework 6 代码优先方法调用存储过程

c# - SQL 服务器错误 "Procedure expects parameter"

mysql - 基于标签搜索书籍的 SQL 查询,具有正确的排序和标签优先级

sql-server - 长时间锁定记录是现代数据库系统的常见做法吗?

c# - System.Data.SqlClient.SqlException (0x80131904) : Timeout expired. 三种不同的情况

sql-server - xp_qv 在 SQL Server 中做什么?

sql - SQL Server 2005发送邮件

SQL:在A列最小的情况下快速获取B列的值

sql - 如何在 SQL Server 中 nvarchar(max) 类型列中现有的 json 结构中添加新属性

java - Genexus Ev2 存储过程