sql server 取一个字段 的前5
发布网友
发布时间:2023-02-19 06:59
我来回答
共2个回答
热心网友
时间:2023-09-24 18:32
是不是C列就是分类,E列就是具体的值,然后需要按照C分组,并取分组后的每组的E列的前5条?
如果是就看看以下语句
--分组排序
select row_number() over(partition by C order by E DESC) no,a,b,c,d,e
from t1
--将分组排序的查询当作一张表查询,需要按照上面排序,可以自己修改,这里处理为所描述的降序,根据no判断,小于等于5的就是需要的数据
select *
from (
select row_number() over(partition by C order by E DESC) no,a,b,c,d,e
from t1
) a
where a.no <= 5
热心网友
时间:2023-09-24 18:33
select c,e from
(select c,e,row_number() over( partition by c order by e) rownum from tb)a
where rownum<=5
row_number是一个函数,按c分组,按e排序,然后给每行一个序号
然后从结果中去除序号小于等于5的就满足题意。