我的目标是了解平均数据块的平均变化是如何被切断的。我有一个返回一组平均值的基本查询:
SELECT AVG(col1), AVG(col2), AVG(col3), COUNT(*)
FROM table
WHERE col1 > 100;
在概念上,我想改变WHERE
子句,从而得到一个结果表:
SELECT AVG(col1), AVG(col2), AVG(col3), COUNT(*)
FROM table
WHERE col1 > 100;
SELECT AVG(col1), AVG(col2), AVG(col3), COUNT(*)
FROM table
WHERE col1 > 200;
除了许多条件,这只返回最后一行。如何迭代以获得多组平均值?
答案 0 :(得分:3)
您可以通过创建截止值表来完成此操作。类似的东西:
select c.cutoff, avg(t.col1), avg(t.col2), avg(t.col3), count(*)
from (select 100 as cutoff union all
select 200
) c left join
table t
on t.col1 > c.cutoff
group by c.cutoff;