我有以下 SQL:(bitemp)
SELECT COUNT (*) AS Count
FROM Table T
WHERE (T.Update_time =
(SELECT MAX (B.Update_time )
FROM Table B
WHERE (B.Id = T.Id))
GROUP BY T.Grouping
现在我得到了一个包含很多数字的结果集。我想得到这个列表的平均值。目前,我正在将列表导入 excel 并使用其平均功能。但是 DB2 有一个 AVG 函数,但我没有让它工作。
我试过
SELECT AVG(COUNT(*))
还有 SELECT AVG(*) FROM (theQuery)
.
最佳答案
您只需将查询作为子查询:
SELECT avg(count)
FROM
(
SELECT COUNT (*) AS Count
FROM Table T
WHERE T.Update_time =
(SELECT MAX (B.Update_time )
FROM Table B
WHERE (B.Id = T.Id))
GROUP BY T.Grouping
) as counts
编辑:我认为这应该是一样的:
SELECT count(*) / count(distinct T.Grouping)
FROM Table T
WHERE T.Update_time =
(SELECT MAX (B.Update_time)
FROM Table B
WHERE (B.Id = T.Id))
关于sql - 试图获得计数结果集的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7737869/