我的目标是观察数据块被切掉后平均值是如何变化的。我有一个基本查询,它返回一组平均值:
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;
除了许多条件之外,这只返回最后一行。如何迭代以获得多组平均值?
最佳答案
您可以通过创建一个截止值表来实现这一点。类似于:
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;
关于mysql - MySQL返回按功能分组的表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26569515/