oracle语句 我想知道在一个字段最大值的情况下, 取另外一个字段最小值的所在记录
例如表T1字段GroupItemC1C2C3C4值A110157A15231A110345A26533A213126B11245通过Group,Item分组取出C1最大值...
例如表T1
字段 Group Item C1 C2 C3 C4
值 A 1 10 1 5 7
A 1 5 2 3 1
A 1 10 3 4 5
A 2 6 5 3 3
A 2 13 1 2 6
B 1 1 2 4 5
通过 Group,Item 分组 取出C1最大值情况下的 C4最小值的记录
结果应该是
A 1 10 3 4 5
A 2 13 1 2 6
B 1 1 2 4 5
我现在用的是多层的Select 嵌套,想知道大家是怎么写的
谢谢 展开
字段 Group Item C1 C2 C3 C4
值 A 1 10 1 5 7
A 1 5 2 3 1
A 1 10 3 4 5
A 2 6 5 3 3
A 2 13 1 2 6
B 1 1 2 4 5
通过 Group,Item 分组 取出C1最大值情况下的 C4最小值的记录
结果应该是
A 1 10 3 4 5
A 2 13 1 2 6
B 1 1 2 4 5
我现在用的是多层的Select 嵌套,想知道大家是怎么写的
谢谢 展开
4个回答
展开全部
-- group 是关键字,最好不要用于列名
select t1.* from t1, (select t1.fgroup, t1.fitem, max(t1.c1) c1, min(t1.c4) c4
from T1, (select fgroup, fitem, max(c1) c1
from T1
group by fgroup, fitem) maxc1
where t1.fgroup = maxc1.fgroup
and t1.fitem = maxc1.fitem
and t1.c1 = maxc1.c1
group by t1.fgroup, t1.fitem) minc4
where t1.fgroup = minc4.fgroup
and t1.fitem = minc4.fitem
and t1.c1 = minc4.c1
and t1.c4 = minc4.c4;
展开全部
select * from t1 t where exists
(select 1 from
(select a.group,a.item,a.c1,min(a.c4) c4 from t1 as a,
(select group,item,max(c1) as c1 from t1 group by group,item) as b
where a.group=b.group
and a.item=b.item
and a.c1=b.c1
group by a.group,a.item,a.c1) c
where t.group=c.group
and t.item=c.item
and t.c1=c.c1
and t.c4=c.c4)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select a.Group,a.Item,a.C1,a.C2,a.C3,a.C4 from T1 a,(select group,item,max(C1) C1,min(C4) C4 group by group,item) b where a.group=b.group and a.item=b.item and a.C1=B.C1 and a.C4=b.C4
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT * FROM A WHERE C4 IN (SELECT MIN(C4)KEEP(DENSE_RANK LAST ORDER BY C1) FROM A GROUP BY AGG,ITEM)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询