我的目标是观察数据块被切掉后平均值是如何变化的。我有一个基本查询,它返回一组平均值:

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/

10-12 23:51