select d from t2
where(b,c in(
select max(b) b,min(c) c from t2 group by a)
)
where(b,c in(
select max(b) b,min(c) c from t2 group by a)
)
解决方案 »
- 如何计算天数?写个select语句
- redhat3位上可以安装64位的oracle11吗?
- sqlplus连接Oracle时出现的问题
- 初学,读oracle concepts时遇到的一句很简单的话,不太懂,望指点
- Oracle怎么配置监听,监听配了以后怎样链接到数据库服务上面??
- PL/SQL中建立触发器的问题
- (求助呀)请教高人:在程序中用ADO去连oracle数据库,但要以sysdba的身份去连接,那么我的连接字符串应该怎么写呢?
- 请问各位 oracle 高手一个问题:我的linux 下的 oracle 启不动了,提示错误如下:
- 简单问题,查询前5条记录的sql语法?
- 初级问题:如何调用函数。
- Asp 执行存储过程
- 远程访问数据库问题 : 如何访问网络上不在公网上的数据库
B,不是条件,是查询内容。可否用一句SELECT得到以下查询结果:
以A为GROUP 最小的C所对应的D,以及最大的B
到底行不行?
问题好像还是能有混淆。可否用一句SELECT得到以下查询结果:
以A为GROUP
查询最小的C所对应的D
以及最大的B
1、是否两张表连接查询?
2、以A为GROUP 还可以理解
3、“查询最小的C所对应的D,”是哪张表地C对应哪张表的D
4、“以及最大的B”什么意思?是C同时对应D和最大的B还是 B又对应什么东东的?
Select a,max(b),d from (select a,min(c),b,d from (select * from t1 union select * from t2)) group by a,d
where c = V.C
group by X.a
这样可合意?
我再解释一下。
T1,T2是两个相同的表。只要单个表查出来后UNION一下就可以了。最大的B是对GROUP A来说的。最小的C也是对GROUP A 来说的。
D是该条(最小的C)所对应的纪录中的D,与B无关。比如数据
A B C D
2 3 4 5
2 4 5 3
1 3 4 5
1 2 9 7
希望查询结果是:
A B D
2 4 5
1 2 5上面两位SQL都不成功
谢谢各位捧场。
希望查询结果是:
A B D
2 4 5
1 3 5
如果你的表的第2行 c 改为 4 那结果 最小的C所对应的纪录中的D 不是就3条记录了
select TA.a,TA.b,TB.d from t1 TA join t1 TB on TA.a=TB.a
where
TA.b=(SELECT MAX(TC.b) FROM t1 TC WHERE TC.a=TA.a group by TC.a )
and
TB.c=(SELECT Min(TD.c) FROM t1 TD WHERE TC.a=TB.a group by TC.a )楼主的字段名用的是abcd所以上面的语句读起来很难....hope that helps
select ta.a,ta.b,tb.d from t1 ta join t1 tb on ta.a = tb.b
where ta.b = (select max(tc.b) from t1 tc where tc.a = ta.a group by tc.a)
and tb.c = (select min(td.c) from t1 td where td.a = tb.a group by td.a)
写出来了。
select ta.a, ta.b, tb.c, tb.d from (select a, max(b) b from t1 group by a) ta,
(select a,c,d from t1 where c in (select min(c) from t1 group by a) ) tb where ta.a = tb.a;这样考虑:
把以A为GROUP 得到最大的B 看作一个表
把以A为GROUP 最小的C所对应的D 看作第二个表
两个表以A为关联
(
select a,
max(b) over (partition by a) b,
d,
row_number() over (partition by a order by c) rn
from t1
)
where rn = 1;