【发布时间】:2016-05-22 02:56:56
【问题描述】:
我正在编写 Oracle SQL 查询;我需要在其中计算小计以及我的正常查询结果。
为此我决定使用GROUP BY 扩展(GROUPING SETS)
由于隐私问题,我不分享实际查询。相反,我在下面写一个最能描述我的小计要求的虚构查询
SELECT
region,
country,
province,
city,
SUM(agg_col1) agg_col1,
SUM(agg_col2) agg_col2
FROM tbl_name
GROUP BY GROUPING SETS(region)
现在我知道上面的查询会出错,因为并非所有非聚合列都是GROUP BY 表达式的一部分;但这是我被卡住的实际点,我不知道如何达到预期的结果。我唯一的要求是获取区域明智的小计和总计以及查询结果。
如果推荐一些详细的阅读材料或视频来掌握这一点,我将不胜感激。
编辑 假设下面是一些示例数据 我想要地区的总和 例如考虑以下数据 地区 国家 省 城市 Agg 1 Agg 2
r1 c1 p1 ct1 1 1
r1 c1 p1 ct2 1 1
r1 c1 p2 ct1 1 1
r1 c1 p2 ct2 1 1
r1 c2 p1 ct1 1 1
r1 c2 p1 ct2 1 1
r1 c2 p2 ct1 1 1
r1 c2 p2 ct2 1 1
r2 c1 p1 ct1 1 1
r2 c1 p1 ct2 1 1
r2 c1 p2 ct1 1 1
r2 c1 p2 ct2 1 1
r2 c2 p1 ct1 1 1
r2 c2 p1 ct2 1 1
r2 c2 p2 ct1 1 1
r2 c2 p2 ct2 1 1
Along with above 16 rows i need following 3 rows
r1 8 8
r2 8 8
16 16
【问题讨论】:
-
能否添加一些示例表数据,以及预期的结果?
-
我不确定我是否理解你..你想要什么的总和?每个地区的?地区,国家?或者什么
标签: sql oracle11g group-by rollup