| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5015 人关注过本帖
标题:请教聚合函数sum()用法
只看楼主 加入收藏
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
以下是引用施南人在2013-6-19 17:02:17的发言:

谢谢!其实只要增加nvl()这个函数就行了。
sele 毕业学校,nvl(sum(iif(类别='应届毕业生',1,0))) as 应届毕业生人数 from xxxx grou by 毕业学校

你这条命令不对的。其它不说,就说NVL()函数的语法,它两个参数都不能省略。你这条命令中的第二个参数呢?
2013-06-19 18:53
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
以下是引用施南人在2013-6-19 17:02:17的发言:

谢谢!其实只要增加nvl()这个函数就行了。
sele 毕业学校,nvl(sum(iif(类别='应届毕业生',1,0))) as 应届毕业生人数 from xxxx grou by 毕业学校

你这条命令不对的。其它不说,就说NVL()函数的语法,它两个参数都不能省略。你这条命令中的第二个参数呢?
2013-06-19 18:54
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用taifu945在2013-6-19 18:54:42的发言:


你这条命令不对的。其它不说,就说NVL()函数的语法,它两个参数都不能省略。你这条命令中的第二个参数呢?
没错
2013-06-19 19:42
施南人
Rank: 2
等 级:论坛游民
帖 子:40
专家分:27
注 册:2013-5-19
收藏
得分:0 
回复 10楼 taifu945
提醒的对,回复时匆忙了点。
sele 毕业学校,NVL(SUM(IIF(类别='应届',1,0)),0) as 应届毕业生 from xxxx grou by 1
2013-06-20 08:53
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:0 
我手头没有数据,无法测试你这条命令能否给出正确答案。但是NVL()函数的功能是:当参数一的值为NULL时,返回参数二的值;否则,维持参数一的值。从你给出的式子来看,SUM(IIF())的结果永远都是数值,不会出现NULL。那么,外面那个NVL()函数套不套也就一样了。另外,如果你的代码是要留存下来将来进行维护的话,建议在命令的子句中尽量不要嵌套太多的函数,否则将来某天翻出来维护的话,自己都要琢磨好一阵子。我在3楼给出的代码虽然看上去比你的复杂,但是将来维护时,在琢磨代码用意的时间上一定比你的这条代码要短得多。现在的计算机硬件水平已经发展到不需要牺牲可读性来换取运行速度了,对于成千上万条记录的表文件来说,3楼的代码不会比你的这条代码慢到哪里去。
2013-06-22 10:30
施南人
Rank: 2
等 级:论坛游民
帖 子:40
专家分:27
注 册:2013-5-19
收藏
得分:0 
多谢各位老师的帮助!这只是临时统计一个数据。
2013-06-22 14:48
快速回复:请教聚合函数sum()用法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024947 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved