聚合查询的用法(当有sum/avg)这些函数时的用法
来源:互联网 发布:homebrew 安装的mysql 编辑:程序博客网 时间:2024/05/15 08:39
当一个语句中有sum/ave这样的函数时,在库中进行查询时,容易出现“ORA-00937: 非单组分组函数”这样的错误,这是因为在聚合查询列中,有没有聚合的列:如
Select 井号,TO_CHAR(生产日期,'yyyy'),TO_CHAR(生产日期,'mm'),sum(生产时间),avg(yy),avg(yt),avg(jt),avg(bt),sum(cql),avg(ly),avg(jy),bz,sum(zql) from 生产数据 where TO_CHAR(生产日期,'yyyy-mm-dd')>='2014-01-01' and TO_CHAR(生产日期,'yyyy-mm-dd')<='2014-12-04' and 变量='XXX' ;
上面的语句在sqlplus中运行后,就会出现
第 1 行出现错误:<span style="color:#ff0000;"><strong>ORA-00937: 非单组分组函数</strong></span>
分析下上面的语句,其中有井号、生产时间、bz这几个列是没有聚合的,所以在查询列中出现,就必然出现上面的错误提示。
要解决这个问题,我发现了一个比较直接的方法就是用group by分组,把查询列中没有聚合的列,都放到这个分组中,如:
group by 井号,TO_CHAR(生产日期,'yyyy'),TO_CHAR(生产日期,'mm')在前面的语句中,加上面那句,因为还有一项bz不是聚合的,所以还会出现错误提示:
<span style="color:#ff0000;"><strong>ORA-00979: 不是 GROUP BY 表达式</strong></span>所以必须在上面的语句中,加入bz这个列才行:group by 井号,TO_CHAR(生产日期,'yyyy'),TO_CHAR(生产日期,'mm'),bz
这个查询语句完整语句应该是
Select 井号,TO_CHAR(生产日期,'yyyy'),TO_CHAR(生产日期,'mm'),sum(生产时间),avg(yy),avg(yt),avg(jt),avg(bt),sum(cql),avg(ly),avg(jy),bz,sum(zql) from 生产数据 where TO_CHAR(生产日期,'yyyy-mm-dd')>='2014-01-01' and TO_CHAR(生产日期,'yyyy-mm-dd')<='2014-12-04' and 变量='XXX' ;
group by 井号,TO_CHAR(生产日期,'yyyy'),TO_CHAR(生产日期,'mm'),bzp 这样就没有问题了,这也是不菲的代价换来的,花了我好几天的时间才把这点搞明白。
0 0
- 聚合查询的用法(当有sum/avg)这些函数时的用法
- oracle中的聚合函数count、max、min、sum、avg以及NVL函数的用法
- 聚合函数(sum、count、max、min、avg)、where、group by、having的组合用法实例
- 在oracle的聚合函数(sum、avg等)中使用NVL函数,强迫加入空值
- 用java连接mongodb并执行$sum和$avg结合的聚合函数的实例。
- 聚合函数(sum,count,max,avg等)ZT
- mysql中group by子句和聚合函数MAX(),MIN(),SUM(),AVG()等的使用
- mongodb 中max、min、sum、avg等函数用法
- 在oracle的聚合函数(sum、avg等)中使用group by来分组你的结果
- Hibernate关于聚合函数的一些用法
- 调用聚合函数的错误用法
- oracle的常用聚合函数简单用法
- AVG , COUNT,GROUP的简单用法案例
- SQL中count()/max() /min()/sum()avg()/sum()等函数用法
- MongoDB驱动 实现 sum和 avg聚合函数
- 数据库 SUM + AVG 等聚合函数 结果为NULL 处理
- HQL中的聚合函数:count()sum()avg()max()min()
- oracle中的聚合函数count、max、min、sum、avg等等
- Assertion failure in -[SKSTableView _configureCellForDisplay:forIndexPath:]
- Ubuntu 安装 Sublime Text 3 及破解方法 Install Sublime Text 3 in Ubuntu via PPA
- JAVA集合小结
- 【Unity3D自学记录】纯GUI实现黑白棋
- 贪心算法解决背包问题
- 聚合查询的用法(当有sum/avg)这些函数时的用法
- java学习--while和if的区别
- PHP快速入门 -- 函数fopen()
- 特殊的函数调用导致的堆栈信息不对的情况
- flex效果
- GridView的一些特殊属性
- webservice接口原理
- oracle优化
- wampserver 2.5 首页链接问题