Oracle子句【group by、having】】的更多相关文章

Oracle中group by用法 在select 语句中可以使用group by 子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使用聚组函数返回的是每一个组的汇总信息. 使用having子句 限制返回的结果集.group by 子句可以将查询结果分组,并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询结果. 在带有group by 子句的查询语句中,在select 列表中指定的列要么是group by 子句中指定的列,要么包…
转自:http://blog.csdn.net/basenet855x/article/details/6694150 问题: select item.itemnum,item.in1,item.in4,inventory.location from item,inventory where item.itemnum=inventory.itemnum and inventory.location='DYB' and item.in1='D/MTD/MRM' GROUP BY ITEM.ITEM…
Oracle的group by除了基本使用方法以外,还有3种扩展使用方法,各自是rollup.cube.grouping sets.分别介绍例如以下: 1.rollup 对数据库表emp.如果当中两个字段名为a,b,c. 假设使用group by rollup(a,b),首先会对(a,b)进行group by ,然后对 a 进行 group by .最后对全表进行 group by 操作. 例如以下查询结果: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZX…
1.GROUP BY子句 在SELECT 列表中所有未包含在组函数中的列都应该包含在GROUP BY 子句中. 如下: SELECT deptno,AVG(sal) from emp GROUP BY deptno;(deptno为没有包含在组函数的列) 以下查询是错误的: SELECT a,b,c,AVG(sal) from emp GROUP BY a,b;(c没有写在group by 后面) =================================================…
[分组查询]关键字:group by 分组字段名,分组字段名... --注意1:分组后,在select语句中只允许出现分组字段和多行函数 --注意2:如果是多字段分组,先按第一字段分组,然后每个小组继续按照第二个字段分组,以此类推. --注意3:在where子句中不允许出现多行函数(where子句比多行函数级别高)[分组筛选]关键字:having --作用:针对分组后数据进行筛选,允许使用多行函数. --注意1 :having必须和分组关键字结合使用,不允许单独使用. 注意:where 和 ha…
在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数,例如SUM, COUNT, MAX, AVG等.这些函数和其它函数的根本区别就是它们一般作用在多条记录上.SELECT SUM(population) FROM bbc 这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有国家的总人口数. 通过使用GROUP BY 子句,可以让SUM 和 COUNT 这些函数对属于一组的数据起作用.当你指定 GROUP…
ORA-00979 不是 GROUP BY 表达式”这个错误,和我前面介绍的另外一个错误ORA-00937一样使很多初学oracle的人爱犯的. 我在介绍使用聚合函数中用group by来分组数据时特别说明了select 列表项中不存在的列可以出现在group by的列表项中,但反过来就不行了,在select列表项中出现的列必须全部出现在group by后面(聚合函数除外) 但一些朋友经常爱把select 列表项的中列忘了写在group by中.于是就出现了以上的错误ORA-00979不是 GR…
group by rollup(a,b) = group by a,b + group by a + group by null SQL> select deptno,job,sum(sal) from emp group by rollup(deptno,job); DEPTNO JOB SUM(SAL) ------ --------- ---------- CLERK MANAGER PRESIDENT CLERK ANALYST MANAGER CLERK MANAGER SALESMA…
总结: group 单纯分组 partition 也能分组,但还具备累计的功能 order by 排序,与计算函数联用,需要累加计算 0.select * from test;     ---测试数据 1.select v1,v2,sum(v2) over(order by v2) as sum  from test;    --按照 v2排序,累计n+n-1+....+1 2.select v1,v2,sum(v2) over(partition by v1 order by v2) as s…
简单的group by用法 select c1,sum(c2) from t1 where t1<>'test' group by c1 having sum(c2)>100; rollup(多列)——上卷汇总,从最后一个汇总字段开始上卷汇总,一直到合计 select c1,c2,sum(c3) from t1 group by rollup(c1,c2) 含义:c1,c2分组合计c1分组合计总计 cube(多列)——组合汇总,以汇总字段的子集作为汇总条件汇总,包括合计 select c…