0

我需要从数据库中选择数据,这些数据将根据规模进行汇总。当我有下面的数据时,我想聚合 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 选择。谢谢你的回答,对不起我的英语。

4

1 回答 1

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上。

于 2012-07-04T19:25:02.737 回答