mysql根据比例聚合

时间:2012-07-04 19:13:53

标签: mysql sql database

我需要从数据库中选择数据,这些数据将根据比例进行汇总。当我有下面的数据时,我想将col1范围内列col2的数据从一到三,从四到六等聚合。

col1 |  col2
-----+----
1    |  34
2    |  43
3    |  75
4    |  23
5    |  62
6    |  33
...  |  ...

结果如下:

| SUM(col2)
+----
  152        - for values from 1 to 3
  118        - for values from 4 to 6
  ...        ...

我不知道如何编写一个SQL select,它可以返回这些数据。 谢谢你的回答,对不起我的英语。

1 个答案:

答案 0 :(得分:3)

CREATE TABLE t (col1 integer, col2 integer);
INSERT INTO t VALUES (1,34),(2,43),(3,75),(4,23),(5,62),(6,33);

SELECT ceil(col1/3) AS grp, min(col1) AS col1_from,
       max(col1) AS col1_till, sum(col2)
  FROM t
 GROUP BY ceil(col1/3);

同样在SQL Fiddle