select * from (
select t.*,rank() over(partition by key1 order by key1,字段2,字段3,字段4 desc) rk
from t) tb
where rk=1;
select t.*,rank() over(partition by key1 order by key1,字段2,字段3,字段4 desc) rk
from t) tb
where rk=1;
解决方案 »
- Merge, connect by 语句的意思
- 数据库正规化和设计技巧
- 关于|| 这个符号的用法
- select查询效率问题
- oacle怎么更新表内一行数据?
- 自建立DML日志表
- Oracle Internet Directory ( oracle ldap ) 高手请进
- oracle中交叉表怎么样来查询?
- 请问 OracleoraHome81ManagementServer 服务 是做什么用的?我为什么启动不起来???
- 菜鸟数据库IMP导入问题。。50分
- 如何得到一个表的主键??????????????????????
- [SQL]Date数据怎么在SQL语句中写?(Error ORA-01861 文字与格式字符串不匹配)
select * from (
select t.*,rank() over(partition by key1 order by key1 desc,字段2 desc,字段3 desc,字段4 desc) rk
from t) tb
where rk=1;
2 KEY1 VARCHAR2 (20),
3 KEY2 VARCHAR2 (20),
4 字段2 NUMBER,
5 字段3 NUMBER,
6 字段4 NUMBER )
7 /表已创建。
SQL> insert into ttst values('01','A',0,1,0);已创建 1 行。SQL> insert into ttst values('02','E',1,0,0);已创建 1 行。SQL> insert into ttst values('01','C',0,0,1);已创建 1 行。SQL> insert into ttst values('03','F',0,0,1);已创建 1 行。SQL> insert into ttst values('03','G',0,1,0);已创建 1 行。SQL> insert into ttst values('02','D',0,0,1);已创建 1 行。SQL> insert into ttst values('01','B',1,0,0);已创建 1 行。SQL> commit;提交完成。SQL> select * from (
2 select ttst.*,rank() over(partition by key1 order by key1 desc,字段2 desc,字段3 desc,字段4 desc) rk
3 from ttst) tb
4 where rk=1
5 /
---------------------------------------- ---------------------------------------- ---------- ---------- ---------- ----------
01 B 1 0 0 1
02 E 1 0 0 1
03 G 0 1 0 1