ORACLE 选择一列最大值问题,请大神们帮帮忙!

数据库中有如下表图片说明
要找出表中列2中最大的一行,如这一行:A 4 aaaaa 667,其他列1中A的行不要,
一次类推找出列1中B对应列2中最大的行,列1中C对应列2中最大的行,如何写select语句,请大神们帮忙,谢谢!

6个回答

//以这个为准,上面个别逗号写成中文了,把table_name 替换成你自己的表名
select a.列1,a.列2,
(select 列3 from table_name where 列1=a.列1 and 列2=a.列2) 列3,
(select 列4 from table_name where 列1=a.列1 and 列2=a.列2) 列4
from 
(select 列1,max(列2) 列2 from table_name group by 列1) a
u014074697
张大教主 不客气,解决就好
大约 3 年之前 回复
hoster
hoster 回复张大教主: 谢谢教主,改造了一下成功获取了数据,谢谢啦
大约 3 年之前 回复

select max(列2) from 表名 where 列1 <> A group by 列1 不是很懂意思,我理解的应该是这样了

select 列1,max(列2),列3,列4 from table group by 列1

Jorker_jie
Jorker_jie 你这个肯定是报错的,分组查询,select的字段除了聚合函数之外,必须出现在group by后面
大约 3 年之前 回复
//把table_name 替换成你自己的表名
select a.列1,a.列2,
(select 列3 from table_name where 列1=a.列1 and 列2=a.列2) 列3,
(select 列4 from table_name where 列1=a.列1 and 列2=a.列2) 列4
from 
(select 列1,max(列2)  列2 from table_name group by 列1) a
select t1.* from (select 列1,max(列2) from 表名 t1 group by 列1) t2 
left join t1 on t1.列1 = t2.列1

这个才对,漏了一个限制条件

select t1.* from (select 列1,max(列2) a from 表名 t1 group by 列1) t2 
left join t1 on t1.列1 = t2.列1  and  t1.列2 = t2.a

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐