ITPub博客

首页 > Linux操作系统 > Linux操作系统 > group by的提醒

group by的提醒

原创 Linux操作系统 作者:ninglin12 时间:2012-06-15 11:14:54 0 删除 编辑

         首先有些基础没打牢是自己必须弥补的,半路走上Oracle(大四)是实际的路线,实习那会学的Oracle基础知识,也就硬着头皮上了。现在回想起来,在学校的时候学数据库还是学的不够强,连Oracle都没碰过。

         上面那些都是扯皮,这几天老是遇到同样的问题,在修改Oracle存储过程的时候,老是出现not a GROUP BY expression的错误 ,就是在过程编译的时候没有问题,而调试的时候出现了问题。经过了纠结了之后找到原因,其实group by 使用不当。不能单单的认为是语法使用不当,仔细分析之后才知道,是思路出现了问题:需求是这样的,需要统计多个企业的多种费用的总和。我原来是这样解决的,把各个费用求和(因为各种费用在不同的表里),然后union all … group by 公司编号(放在里层),然后再外层就和,再group by 公司编号。但是这是不对的,首先语法不对,报not a GROUP BY expression的错误,再次这样求出来的并不是要求的结果(求出的是单项费用的总和,并没有汇总)。其实再对单项费用求和就满足所有的条件了(语法和需求)。这样的错误,其实不是单纯的语法错误,是逻辑上的问题。

         这里记录一下,作为以后的提醒。再次,翻阅一下group by的原理,通过使用group by字句,在表中达到将数据分组的目的。将表的行分为若干组,这些组中的行不重复。然后通过列函数分别统计每个组,这样的组都有一个统计值。Select department_id,MAX(wage),MIN(wage)

group by.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26936900/viewspace-732890/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 数据库连接池
请登录后发表评论 登录
全部评论

注册时间:2012-05-31

  • 博文量
    19
  • 访问量
    72650