group by rollup用来生成小计和总计,经常会合并GROUPING函数使用。
GROUPING:当使用聚集函数(Cube,Rollup等等)的时候,使用grouping函数来区分结果集中的NULL是由于聚集函数产生的还是本身的。如果是由聚集函数产生的,则返回值为1,否则返回0。
wm_concat(group by的项目用逗号相连)
select grouping(t.type_code),grouping(t.year_month),
t.type_code, t.year_month, count(*),
--排行
rank() over (partition by t.type_code order by count(*) desc)
from ar_sell t
group by rollup(t.type_code, t.year_month)
order by t.type_code, t.year_month
wm_concat操作后的字段类型默认是clob的,在python中处理不是很方便(不能用fetchmany)
使用to_char(wm_concat(brand_name))转成varchar后就可以!
rollup(a,b,c) 包括N+1种组合,分别按(a,b,c )聚合,按(a,b)聚合,按(a)聚合,最后()聚合即全表聚合。
cube(a,b,c) 包括2^n种组合,分别按(a,b,c),(a,b),(a,c),(a),(b,c),(b),(c),()共8种情况聚合。grouping和grouping_id()可以美化效果。(显示合计,小计)
参考
Oracle 分析函数的使用(zt)
select decode(grouping(m.province), '0', m.province, '1', '汇总') as province,sum(m.num)
from tbl m group by rollup(m.province)
select t.type_code,
2010,
t.province,
t.city,
t.country,
t.shop_name,
sum(t.sell_money),
sum(t.sell_money) / 2,
to_char(wm_concat(t.brand_name || '$AR$' || t.sell_money))
from ar_sell t
where t.year_month >= 201001
and t.year_month <= 201012
group by t.type_code, t.province, t.city, t.country, t.shop_name
分享到:
相关推荐
GROUP BY子句(rollup,cube,grouping sets)实例说明
rollup,cube,grouping sets()的个人理解 其中关于这三个的各种情况,举例论证这三个的区别。
rollup cube grouping sets的用法 详细,讲述与实例想结合
NULL 博文链接:https://dolphin-ygj.iteye.com/blog/416356
oracle 聚合函数的扩展使用 ...2.CUBE子句也是对GROUP BY子句进行扩展,返回CUBE中所有列组合的小计信息,同时在最后显示总计信息。 3.GROUPING()函数与ROLLUP、CUBE的结合使用 4.GROUPING_ID()函数的使用
使用ROLLUP函数生成报表的小计、合计 这个函数很不错 使用的范围其实蛮广的
SQL Server中的用法为group by colomn with [rollup|cube],首先要弄明白rollup 和cube,就要知道group by的用法,group by 为对列进行分组,只展现分组统计的值,而 rollup 为分层次展现,cube 为展现列中所有层次...
SQL语句中Group BY 和Rollup以及cube用法
group by扩展包括 rollup、cube、grouping、grouping sets的用法和说明
一、如何理解group by 后 带 rollup 子句所产生的效果 group by 后 带 rollup 子句的功能可以理解为:先按一定的规则产生多种分组,然后按各种分组统计数据(至于统计出的数据是求和还是最大值还是平均值等这就取决...
关于with cube ,with rollup 和 grouping 通过查看sql 2005的帮助文档找到了CUBE 和 ROLLUP 之间的具体区别: ...仅在与包含 CUBE 或 ROLLUP 运算符的 GROUP BY 子句相关联的选择列表中才允许分组。 当看到以上
group by后使用rollup子句总结,oracle开发人员值得一看
GROUP BY子句要和聚合函数配合使用才能完成分组查询,在SELECT查询的字段中,如果没有使用聚合函数就必须出现在ORDER BY子句中。分组查询后,查询结果为一个或多个列分组后的结果集。 GROUP BY语法 SELECT 列名, ...
NULL 博文链接:https://wangjingyi.iteye.com/blog/1545090
本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as select * from scott.dept; create table emp as select * from ...
实际项目中因表数据量大,发现查询速度很慢。记录此次排查和优化过程。希望对阅读到此文章的朋友有所帮助。
深入介结分析函数的内部实现cube,rollup,grouping,里面有具体的例子来说明,方便大家理解学习
Oracle的Rollup用法 Oracle的Rollup用法
oracle rollup及cube的使用,开发人员必备的资料
用union all方式对上面代码改写如下:SQL> select group_id,job,sum(salary) from group_test 2 g