select * from ( select a.*,row_number() over (order by 分数 desc) rn,count(*) over() tot from a ) where trunc(100*rn/tot)<=30 这是30%的where trunc(100*rn/tot)>=30 and trunc(100*rn/tot)<=60
30%-60% where trunc(100*rn/tot)>=30 and trunc(100*rn/tot) <=60
select perf_sum,employee_type from ( select a.*,row_number() over (order by perf_sum desc) rn,count(*) over() tot from performance_inview a where a.employee_type='1') where trunc(100*rn/tot) <=30select a.*,row_number() over (order by perf_sum desc) rn,count(*) over() tot from performance_inview a where a.employee_type='1' 这条查询语句我能查询出两条记录, 但上面那条记录为什么一条都没有呀~ 我想查询出employee_type='1' 的总分数的前30% 呵呵~ employee_type='1'的数据共有两条,都有分数! 真是麻烦你了, 谢谢!
from
(
select a.*,row_number() over (order by 分数 desc) rn,count(*) over() tot
from a
)
where trunc(100*rn/tot)<=30
这是30%的where trunc(100*rn/tot)>=30 and trunc(100*rn/tot)<=60
where trunc(100*rn/tot)>=30 and trunc(100*rn/tot) <=60
我想查询出employee_type='1' 的总分数的前30% 呵呵~ employee_type='1'的数据共有两条,都有分数!
真是麻烦你了, 谢谢!
是啊,你那样不是很矛盾么???
hebo2005好像是专业的数据库专家啊,什么都知道啊,厉害啊
开完会,又没有赶上。