赞
踩
聚合操作之高效这里就不多谈了。
其特点在 窗口函数的文章中 做了些比较,所以…也不多谈了。
结合文档来说,聚集函数有一些巧思的,剩下的基本都是些较为专业的科学统计api,带过了。(有点“随笔”的感觉了…)
having 中使用聚合函数作为过滤条件 较where子句的逐行过滤来说,效率更优 grouping sets、cube、rollup 用作分组集(分组聚集),也就是将分组字段以组合的方式罗列出来 cube、rollop是grouping sets的两种分组方式的简洁写法(不知道咋说了,建议回归原文细看...) cube:给定分组的随机组合 rollup:给定排序的分组的梯形分布 groupping 和 传统的group不同的是,多分组下的表现形式不同: group是在上一次分组的各个组内进行下一轮分组 grouping 的下一次分组使用的并不是前一次分组的结果,而是原来未分过组的原始表 -> 两次分组互不印象 -> 分组后的结果,给人一种“错开”显示的感觉 借助array_agg(exp)、jsonb_agg(exp)等api可将多行的列聚集成数组、json甚至是xml count(distinct 列)可以实现分组内统计不重复值 count(1) 中的'1'表统计结果集中的第一列,这比count(*)效率更好 聚合函数不一样要使用group by,如果使用了group by需要保证值不能为N/A(不是null,相当于是查询空表的意思)=>这时候,考虑去掉group by || 套一层"父查询"(并使用case when is null) pgsql的group by后不仅限于列名,亦支持表达式。比如:select ... from ... where ... group by col < 10 ,col >= 10 and col <50,col >=50 根据表达式分组下,无法返回任意的原有列,除了使用聚合函数。-> 因此,我们可以使用order by 聚合函数 来确定返回结果的排序
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。