sql - 查找返回多行的计数(*)的平均值

标签 sql sql-server-2005

您好,我正在尝试计算结果集的平均值,但我无法这样做选择 count(*) 的查询返回 1 月 1 日至 31 日之间每一天的调用计数,因此返回了近 20 行。我应如何计算结果的平均值,然后将该值分配给变量,如 SET @abc =(下面的查询)。我正在使用 sql server 2005。

SELECT avg(Calls) AS average 
FROM
(
     SELECT COUNT(*) Calls      
     FROM abc 
     WHERE CallDate  BETWEEN '20120101'  AND '20120131' 
     AND datepart(Hh,TranscribeDateTime) = '07' 
     AND datepart(Mi,TranscribeDateTime) BETWEEN '00' AND '59'  
     AND AppID = 123 AND Status ='T' 
     GROUP BY calldate
)

如果我的方法有误,请提出一个。谢谢你

最佳答案

看起来你只是缺少派生表的表别名(SQL Server 中需要)和赋值语句(如果你将它分配给 AS average 列,你也不能别名一个变量)

DECLARE @ABC INT;

SELECT @ABC = AVG(Calls)
FROM
(
     SELECT COUNT(*) Calls      
     FROM abc 
     WHERE CallDate  BETWEEN '20120101'  AND '20120131' 
     AND datepart(Hh,TranscribeDateTime) = '07' 
     AND datepart(Mi,TranscribeDateTime) BETWEEN '00' AND '59'  
     AND AppID = 123 AND Status ='T' 
     GROUP BY calldate
) T  /* <-- Alias here */

关于sql - 查找返回多行的计数(*)的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13960613/

相关文章:

从一对多表中选择sql

sql - 我应该在数据库模式中允许空值吗?

带有 INNER JOIN 的 MySQL SQL 语句

sql-server-2005 - 键值表上的 SQL Server PIVOT

sql-server-2005 - 用于更新 INSERTED 表值的 SQL 插入触发器

sql - 存储过程以及在参数调用中使用 tsql 函数

mysql - SQL 查询字符串中的可选变量

c# - foreach 列表框中的项目 |阅读器

sql - 选择列表中的列无效,因为它未包含在聚合函数或 GROUP BY 子句中

c# - 通过 .net winform 应用程序连接到 sql server