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