表TA有3个字段(A1,A2,A3),有2个主键(A1,A2)
A1 A2 A3
B E0001 1
B E0002 1
T E0003 2
B E0004 3
B E0005 3查询语句
SELECT * FROM TA WHERE (A1, A3) IN (SELECT A1, MAX(A3) FROM TA GROUP BY A1)
查询出的结果是
A1 A2 A3
T E0003 2
B E0004 3
B E0005 3但是我想查询出来的结果只有一个B的以下是我想要的结果:
A1 A2 A3
T E0003 2
B E0004 3
A1 A2 A3
B E0001 1
B E0002 1
T E0003 2
B E0004 3
B E0005 3查询语句
SELECT * FROM TA WHERE (A1, A3) IN (SELECT A1, MAX(A3) FROM TA GROUP BY A1)
查询出的结果是
A1 A2 A3
T E0003 2
B E0004 3
B E0005 3但是我想查询出来的结果只有一个B的以下是我想要的结果:
A1 A2 A3
T E0003 2
B E0004 3
解决方案 »
- 求教大神,这种情况该怎么解决
- 新装的oracle,为何在登录时提示用户名或者口令无效
- 看看
- orcale中 表名是变量
- 存储过程删数据
- 如何使用EXP命令导出某个表的一部分数据?(顶者有分,解决后立刻给分结贴。)
- Database Configuration Error! install Oracle92 on Redhat9
- oracle问题!着急呀!~~~~~~!!!!!oracle15212错误
- 以下这段java在SQL PLUS WorkSheet中变异为什么会有这种错误?在线等。
- 都说oracle9i不需要改名,怎么我在机器上装不上去?分都散完了,分不多请大家帮忙!
- 无法建立索引
- Oracle 如何按Date类型时间字段查询记录
SELECT * FROM TA WHERE (A2) IN (SELECT A2 FROM (SELECT A2,MAX(A3) FROM TA GROUP BY A1) )
SELECT MAX(ROWID) FROM TEST WHERE A1=T.
insert into tb select 'B', 'E0001', 1 from dual;
insert into tb select 'B', 'E0002', 1 from dual;
insert into tb select 'T', 'E0003', 2 from dual;
insert into tb select 'B', 'E0004', 3 from dual;
insert into tb select 'B', 'E0005', 3 from dual;select * from tb t where A2 = (select max(A2) from tb where A1 = t.A1);结果
A1 A2 A3T E0003 2
B E0005 3