select bid,vid,pid
from (select a.bid,
a.vid,
a.pid,
dense_rank() over (partition by bid order by vid) rm
from (select *
from (select bid,
vid,
pid,
row_number() over(partition by bid,vid order by pid) type_vip
from tab_name where type_vip<4) a ) where rm<3
from (select a.bid,
a.vid,
a.pid,
dense_rank() over (partition by bid order by vid) rm
from (select *
from (select bid,
vid,
pid,
row_number() over(partition by bid,vid order by pid) type_vip
from tab_name where type_vip<4) a ) where rm<3
解决方案 »
- 请教DBMS_METADATA.GET_DDL报错 error stack
- tnsnames.ora中多主机连接的时间能设置吗
- 关于oracle表数据更新问题
- 如何让oracle在事物提交的时候才验证外键约束?
- 这样的sql 怎么写 请教高手
- 存储过程:怎样将表a的某列值作为表b的查询列
- 请教一个比较难的查询语句
- 奉上100分,为什么我用imp命令恢复的时候总是不行啊?各位大虾。。。请进
- !!!*****寻Microsoft ODBC driver for Oracle联接Oracle9i方案(MSDTC)*****!!!
- ANALYSIS TABLE到底该不该用,什么时候用?
- 数据库网关问题
- 多类别分类合计问题
rm<3 每个用户选择2种类型
这个效率可能较低,期待高手
from (select a.bid,
a.vid,
a.pid,
dense_rank() over (partition by bid order by vid) rm
from (select *
from (select bid,
vid,
pid,
row_number() over(partition by bid,vid order by pid) type_vip
from tab_name) where type_vip<4) a ) where rm<3
from (select a.bid,
a.vid,
a.pid,
a.sid
a.uid
dense_rank() over (partition by bid order by vid) rm
from (select *
from (select bid,
vid,
pid,
sid,
uid
row_number() over(partition by bid,vid order by pid) type_vip
from tab_name) where type_vip<4) a ) where rm<3
oacle 的文档 sql reference 中有介绍