您好,我正在尝试计算结果集的平均值,但我无法这样做选择 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/