每隔5行做个统计但不是小计那种

B525068254 2015-04-09 09:25:46
比如表 A

字段SL
5
7
7
8
8
5
7
8
2
3
4
2
希望得到的查询是
1-5 35
6-10 25
11-12 6
当我双击6-10也能显示明细
5
7
8
2
3
...全文
322 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 版主 2015-04-10
  • 打赏
  • 举报
回复

create table test (id int ) 
insert into test(id) values(5),(7),(7),(8),(8),(5),(7),(8),(2),(3),(4),(2)
go
with m as (
select ROW_NUMBER() over(order by getdate())  rn , * from test 
)
select ltrim(min(rn))  + '-' + ltrim(max(rn)) [c] , sum(id) [sum]
from m group by (rn -1) /5
go
-- 下面是展开语句,可以在程序里引用 
-- select * from m where rn between 6 and 10

drop table test 
go

(12 行受影响)
c                                                 sum
------------------------------------------------- -----------
1-5                                               35
6-10                                              25
11-12                                             6

(3 行受影响)


B525068254 2015-04-10
  • 打赏
  • 举报
回复
试了一下的确可行
shoppo0505 2015-04-09
  • 打赏
  • 举报
回复
没有列用于排序的话,单步SQL语句解决不了。 SQL返回集不能点击,你要的这个功能要在前台程序中实现。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧