创建两张表
create table t_temp01(
id number,
num1 number,
num2 number
);create table t_temp2(
id number,
num1 number,
num2 number
);insert into t_temp01 values('1','1','1');
insert into t_temp01 values('2','2','3');
insert into t_temp01 values('3','3','3');
insert into t_temp01 values('4','4','4');
insert into t_temp01 values('1','3','3');
insert into t_temp2 values('1','3','3');
insert into t_temp2 values('2','1','1');
insert into t_temp2 values('2','1','3');
insert into t_temp2 values('3','4','3');然后查询第一句
select t.id, sum(t.num1),sum(t.num2)
from t_temp01 t, t_temp2 t2
group by t.id;
第二句
select t.id, sum(t.num1),sum(t.num2)
from t_temp01 t
group by t.id这两句,只是第一句时加了一个表,为什么结果就不一样了?
可不可以说下在这种情况下group by 和 sum是怎么运行的?select t.id, sum(t.num1),sum(t.num2)
from t_temp01 t, t_temp2 t2
where t.id=t2.id1
group by t.id
这样写的时候,查询结果中id为2的值,好像是t.num1加了两次的结果
create table t_temp01(
id number,
num1 number,
num2 number
);create table t_temp2(
id number,
num1 number,
num2 number
);insert into t_temp01 values('1','1','1');
insert into t_temp01 values('2','2','3');
insert into t_temp01 values('3','3','3');
insert into t_temp01 values('4','4','4');
insert into t_temp01 values('1','3','3');
insert into t_temp2 values('1','3','3');
insert into t_temp2 values('2','1','1');
insert into t_temp2 values('2','1','3');
insert into t_temp2 values('3','4','3');然后查询第一句
select t.id, sum(t.num1),sum(t.num2)
from t_temp01 t, t_temp2 t2
group by t.id;
第二句
select t.id, sum(t.num1),sum(t.num2)
from t_temp01 t
group by t.id这两句,只是第一句时加了一个表,为什么结果就不一样了?
可不可以说下在这种情况下group by 和 sum是怎么运行的?select t.id, sum(t.num1),sum(t.num2)
from t_temp01 t, t_temp2 t2
where t.id=t2.id1
group by t.id
这样写的时候,查询结果中id为2的值,好像是t.num1加了两次的结果
解决方案 »
- 请教oracle的CLOB字段的最大长度
- oracle text全文索引问题
- -- Oracle 如果监控某存储过程的执行情况? --
- grouping sets为何出错
- 【】【】【select 最多能显示多少列?】【】【】【】
- 请教sql怎么写
- 谁知道PL/SQL中如何判断一个变量是否是"YYYY/MM"形式?
- 我用一个getclob函数来读取clob值 为什么不行
- DX请帮忙,由于买书不便,谁有“<<Oracle 9i 中文版数据库系统管理>>赵松涛著 人民邮电出版社” 电子版或网址
- 关于spool 的set linesize的问题
- 一条SQL语句的优化
- 求oracle命令或资料,查询已建成的视图,索引等等详细信息,比如:建立的代码,和表的关系
from t_temp01 t, t_temp2 t2
where t.id=t2.id1
from t_temp01 t, t_temp2 t2
group by t.id;
这条语句因为 t_temp2有4条语句,所以t_temp1累加了4次
例如
id=1的num1的结果为1+1+1+1+3+3+3+3=16
id=2的num2的结果为2+2+2+2=12
其它如此类推select t.id, sum(t.num1),sum(t.num2)
from t_temp01 t
group by t.id
因为只关联一张表,所以只是t_temp01的累加合
select t.id, sum(t.num1),sum(t.num2)
from t_temp01 t, t_temp2 t2
where t.id=t2.id
group by t.id
也是关联了两张表,但有限定了条件t.id=t2.id
所以是两张表的id相同的累加