
SQL语句修改,截取前100条数据
selectb.buyer_uid采购组,a.art_no货号,a.descr描述,a.stock库存,a.sell_pr*(1+t.vat_perc/100)含税售价f...
select
b.buyer_uid 采购组, a.art_no 货号, a.descr 描述,a.stock 库存, a.sell_pr*(1+t.vat_perc/100) 含税售价
from article a,tax t,buyer b
where
a.vat_no=t.vat_no
and a.buyer_uid=b.buyer_no
and a.stock<>0
order by
b.buyer_uid,a.sell_pr*(1+t.vat_perc/100) desc;
以上语句,现在取出的是所有采购组的数据,我现在需要做的是,截取每个采购组前100条数据,我应该怎样修改? 展开
b.buyer_uid 采购组, a.art_no 货号, a.descr 描述,a.stock 库存, a.sell_pr*(1+t.vat_perc/100) 含税售价
from article a,tax t,buyer b
where
a.vat_no=t.vat_no
and a.buyer_uid=b.buyer_no
and a.stock<>0
order by
b.buyer_uid,a.sell_pr*(1+t.vat_perc/100) desc;
以上语句,现在取出的是所有采购组的数据,我现在需要做的是,截取每个采购组前100条数据,我应该怎样修改? 展开
2个回答
展开全部
select * from (
select row_number() over(partition by buyer order by 排序字段) rindex , * from tablename
) where rindex<=100
row_number() over(partition by 分组字段 order by 排序字段)可实现分组f1-f5后再对每个组进行自定的排序编号,外面再嵌套一层select,直接取排序编号为前100的。
我不是已经回答过了么?这个可以解决你的问题,照着模板来啊,
比如你的f1-f5数据记录为
f1 f1a1
f2 f2a1
f3 f3a1
f4 f4a1
f5 f5a1
f1 f1a2
f2 f2a2
f3 f3a2
f4 f4a2
f5 f5a2
........
f1 f1a2000
f2 f2a2000
f3 f3a2000
f4 f4a2000
f5 f5a2000
那么他分组排序后取出的数据是
f1 f1a1 1
f1 f1a2 2
.....
f1 f1a2000 2000
f2 f2a1 1
f2 f2a2 2
........
f2 f2a2000 2000
f3 f3a1
......同上
f4 f4a1
......同上
f5 f5a1
......同上
得出这种数据后,直接取rindex<=100的,每组的前100条数据不就出来了?
追问
不会套用你的字段,你给帮我套用进去,应该是什么样?
2015-12-05 · 知道合伙人软件行家
关注

展开全部
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |