我有一张桌子如下。我希望以这样的方式组成一个小组,将1-4周期连接在一起,并将5-8个周期连接在一起。或者换句话说,我想从下面的字段中获得每月总计
table1
weeknum amount
1 1000
2 1100
3 1200
4 1300
5 1400
6 1500
7 1600
8 1700
我需要的输出如下
output
max(weeknum) sum(amount)
4 4600
8 6200
以下答案并不完全适用于我的实际值,如下所示。我想从4周的分组开始。公式(weeknum-1)/ 4返回3组,因为预期只有2
weeknum Group Expr Expected Group Expr
1855 463 463
1856 463 463
1857 464 463
1858 464 463
1859 464 464
1860 464 464
1861 465 464
1862 465 464
需要在oracle中执行查询
答案 0 :(得分:2)
尝试使用FLOOR
对group by
子句中的数字进行舍入:
SELECT MAX(t.weeknum),sum(amount)
FROM table1 t
GROUP BY FLOOR((t.weeknum-1)/4)
这将确保每4周被视为一组:
(1-1)/4 -> 0
(2-1)/4 -> 0
...
(5-1)/4 -> 1