请教有关group by的问题?

[复制链接]
查看11 | 回复9 | 2012-5-15 15:24:11 | 显示全部楼层 |阅读模式
下面有两条SQL语句,为什么执行结果不同?
1、
---------------------------------------------------------------------
select sum(jg) from ykgl.ZY_MXK1 where zyno='561';
SUM(JG)
---------
465.042
--------------------------------------------------------------------
2、
============================
select sum(jg) from ykgl.ZY_MXK1 where zyno='561' group by jg;
SUM(JG)
---------
.186
.2
2.1
.996
.36
14.76
.86
.5
1.62
.56
3.55
.74
5.6
.98
1.33
9.6
11.4
2.1
4.8
2.9
3
SUM(JG)
---------
7.6
26.4
28.2
11.8
18
6.9
298
查询到28记录.
======================
奇怪啊?请高手指教!
回复

使用道具 举报

千问 | 2012-5-15 15:24:11 | 显示全部楼层
没有贴全。
回复

使用道具 举报

千问 | 2012-5-15 15:24:11 | 显示全部楼层
第一个是所有数据的sum,
第二个是按照jg分组后每一组的数据的sum,
第二个所有分sum的值合起来就是第一个sum值
回复

使用道具 举报

千问 | 2012-5-15 15:24:11 | 显示全部楼层
谢谢!不过,怎样才能将所以分组的sum值汇总起来,得到一个总值呢?因为我现在只能用group by子句了。
回复

使用道具 举报

千问 | 2012-5-15 15:24:11 | 显示全部楼层
将group by 去掉不就可以得到所有的值了吗?
可能我没有明白你的意思!
回复

使用道具 举报

千问 | 2012-5-15 15:24:11 | 显示全部楼层
select sum(jg) from ykgl.ZY_MXK1 where zyno='561' group by rollup(jg);
这样最后一行将是总值。
回复

使用道具 举报

千问 | 2012-5-15 15:24:11 | 显示全部楼层
可能还是版本问题,又出错了,不能识别rollup
-----------------------------------------
select sum(jg) from ykgl.ZY_MXK1 where zyno='561' group by rollup(jg);
select sum(jg) from ykgl.ZY_MXK1 where zyno='561' group by rollup(jg)

*
第1行有错:
ORA-00904: 无效列名
-------------------------------------------
有其它的方法吗?因为我还要同时查询其它字段,所以必须用group by 子句。
谢谢!
回复

使用道具 举报

千问 | 2012-5-15 15:24:11 | 显示全部楼层
做版本升级吧
回复

使用道具 举报

千问 | 2012-5-15 15:24:11 | 显示全部楼层
怎么做版本升级?我的数据库可不能出错啊!
回复

使用道具 举报

千问 | 2012-5-15 15:24:11 | 显示全部楼层
select sum(jg) from ykgl.ZY_MXK1 where zyno='561' group by jg;
union
select sum(jg) from ykgl.ZY_MXK1 where zyno='561';
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行