我想找到符合标准的字段的平均数量。它嵌入在一个大表中,但我希望这个平均字段在那里而不是在单独的表中进行。
这是我到目前为止所拥有的:
Select....
Avg( (currbal) where (select * from table
where ament2 in ('r1','r2'))
From table
我想找到符合标准的字段的平均数量。它嵌入在一个大表中,但我希望这个平均字段在那里而不是在单独的表中进行。
这是我到目前为止所拥有的:
Select....
Avg( (currbal) where (select * from table
where ament2 in ('r1','r2'))
From table
如果您只想对查询的子集进行 AVG,用于case when ... then
将不匹配行中的值替换为空值,因为空值会被 avg() 忽略。
Select id,
sum(something) SomethingSummed,
avg(case when ament2 in ('r1','r2') then currbal end) CurrbalAveragedForR1R2
From [table]
group by id
您可以将要嵌入到语句中的所有其他总和放在子句AVG
内的表引用中。FROM
就像是:
SELECT AVG(currbal)
FROM
(
SELECT * -- other sums
FROM table
WHERE ament2 IN ('r1','r2')
) t
您可以将完整的子选择写入选择列表:
SELECT ...,
(SELECT AVG(Currbal) FROM Table WHERE ament2 IN ('r1', 'r2')) AS avg_currbal,
...
FROM ...
这是否会完全符合您的要求取决于很多事情。你可能需要把它变成一个相关的子查询;假设“ament2”在表中,目前它不是相关的子查询。