
oracle sql里有多个max时数据是怎么查的
如果selectmax(aaa),bbb,cccfromx上面这条sql中bbb和ccc是max后这一条数据中的bbb和ccc的值么?selectmax(aaa),max...
如果
select max(aaa),bbb,ccc from x
上面这条sql中bbb和ccc 是max后这一条数据中的bbb和ccc的值么?
select max(aaa),max(bbb),ccc from x
那这两个max呢? 最大值怎么取的? 如果aaa取最大 那bbb呢? 如果bbb也是最大 那取的就不是同一条记录了啊?? 我很费解这个请高手指点
select max(aaa),max(bbb),max(ccc) from x
都是max呢?
我如果一个sql left join 一个分组的sql 为什么取不到正确值?
select * from left join (select * from xxx where....group by ....)
则必须写成 select * from x left join (select * from (select max(aaa),bbb from xxx where... group by .....) where ....)这种形式
我比较费解 望高手指点迷津
额 我想了下 前两种情况要分组 那第三种貌似不用分组的 我要知道的是第三种情况 展开
select max(aaa),bbb,ccc from x
上面这条sql中bbb和ccc 是max后这一条数据中的bbb和ccc的值么?
select max(aaa),max(bbb),ccc from x
那这两个max呢? 最大值怎么取的? 如果aaa取最大 那bbb呢? 如果bbb也是最大 那取的就不是同一条记录了啊?? 我很费解这个请高手指点
select max(aaa),max(bbb),max(ccc) from x
都是max呢?
我如果一个sql left join 一个分组的sql 为什么取不到正确值?
select * from left join (select * from xxx where....group by ....)
则必须写成 select * from x left join (select * from (select max(aaa),bbb from xxx where... group by .....) where ....)这种形式
我比较费解 望高手指点迷津
额 我想了下 前两种情况要分组 那第三种貌似不用分组的 我要知道的是第三种情况 展开
4个回答
展开全部
1. select max(aaa),bbb,ccc from x group by bbb,ccc
这个语法是找出bbb, ccc在相同的情况下,aaa的最大值。
2. select max(aaa),max(bbb),ccc from x group by ccc
这个语法是找出ccc相同时的aaa的最大值和bbb的最大值。
举例
aaa bbb ccc
5 4 4
6 4 4
5 6 4
5 5 7
这时执行1语句,得到的结果是
max(aaa) bbb ccc
6 4 4
5 6 4
5 5 7
执行2语句,得到的结果是
aaa max(bbb) max(ccc)
5 6 7
6 4 4
这个语法是找出bbb, ccc在相同的情况下,aaa的最大值。
2. select max(aaa),max(bbb),ccc from x group by ccc
这个语法是找出ccc相同时的aaa的最大值和bbb的最大值。
举例
aaa bbb ccc
5 4 4
6 4 4
5 6 4
5 5 7
这时执行1语句,得到的结果是
max(aaa) bbb ccc
6 4 4
5 6 4
5 5 7
执行2语句,得到的结果是
aaa max(bbb) max(ccc)
5 6 7
6 4 4
展开全部
select emp.deptno,max(emp.sal) as sal,max(emp.comm)as comm from emp group by emp.deptno;
结果:
deptno sal omm
30 2850 1400
20 3000
10 5000
解释:列出各部门的最高工资和最高提成
不要理解成雇员的最高工资和最高提成
select max(emp.sal) as sal,max(emp.comm)as comm from emp;
sal comm
5000 1400
解释:列出整个公司整个公司的最高工资和最高提成;
不是某雇员的最高工资和最高提成,
也不是某部门的最高工资和最高提成,
是整个公司的最高工资和最高提成
关于连接查询你还没有理解
select * from left join (select * from xxx where....group by ....)
你左边都没有表,你左连接跟谁连接,肯定等不到正确的值
而且报错ORA-00923: 未找到要求的 FROM 关键字
你还是多看看关于连接查询
结果:
deptno sal omm
30 2850 1400
20 3000
10 5000
解释:列出各部门的最高工资和最高提成
不要理解成雇员的最高工资和最高提成
select max(emp.sal) as sal,max(emp.comm)as comm from emp;
sal comm
5000 1400
解释:列出整个公司整个公司的最高工资和最高提成;
不是某雇员的最高工资和最高提成,
也不是某部门的最高工资和最高提成,
是整个公司的最高工资和最高提成
关于连接查询你还没有理解
select * from left join (select * from xxx where....group by ....)
你左边都没有表,你左连接跟谁连接,肯定等不到正确的值
而且报错ORA-00923: 未找到要求的 FROM 关键字
你还是多看看关于连接查询
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
分组函数就是按照你给的分组条件来进行取数据,求集合函数值,自己好好理解吧
语法的问题还是自己看手册去找答案吧,每个句子只有一种或最多两三种写法是正确的,这么问的话你问多少回也还是搞不明白。
语法的问题还是自己看手册去找答案吧,每个句子只有一种或最多两三种写法是正确的,这么问的话你问多少回也还是搞不明白。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
表中有主键吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询