VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: yrasd11

简单统计问题

[复制链接]

1

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-1-10 22:36:01 | 显示全部楼层
TO: gtolishun ( )

要求结果相邻多个class相同,spendtime相加

回复

使用道具 举报

0

主题

66

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-1-10 23:18:02 | 显示全部楼层
楼上不对,连续三个以上就不对了


select class,sum(spendtime) as spendtime
from
(select class,spendtime,(select isnull(max(orderindex),0)  from #t where orderindex<t.orderindex and class<>t.class) as a from #t t ) tt
group by class,a
回复

使用道具 举报

0

主题

66

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-1-10 23:27:02 | 显示全部楼层
create table #t (class varchar(20),spendtime int,orderindex int identity)
insert #t
select 'A',1 union all
select 'B',1 union all
select 'B',2 union all
select 'B',1 union all
select 'B',2 union all
select 'A',2 union all
select 'B',2
go

--query
select class,sum(spendtime) as spendtime
from
(select class,spendtime,(select isnull(max(orderindex),0)  from #t where orderindex<t.orderindex and class<>t.class) as a from #t t ) tt
group by class,a


--result
A        1
B        6
A        2
B        2
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-11 11:00:02 | 显示全部楼层
--修改下啊.
select ta.class, spendtime=case when  ta.orderindex<=tb.orderindex+1
                      then isnull(ta.spendtime,0)+isnull(tb.spendtime,0)
                    else isnull(ta.spendtime,0) end
from
(
        select * from #t a
        where not exists (select 1 from #t where class=a.class and orderindex=a.orderindex+1)
) ta
left join
(
        select class,spendtime=sum(spendtime),orderindex=max(orderindex)  from #t a
        where   exists (select 1 from #t where class=a.class and orderindex=a.orderindex+1)
        group by class
) tb
on ta.class=tb.class
回复

使用道具 举报

0

主题

66

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-1-11 11:36:01 | 显示全部楼层
michealhenry和我一样滴,嘿嘿
回复

使用道具 举报

0

主题

49

帖子

35.00

积分

新手上路

Rank: 1

积分
35.00
发表于 2020-1-11 19:00:01 | 显示全部楼层
哦,光看到你的测试结果不同乐
没有看到你的测试数据不一样!呵呵

那我支持你把!
回复

使用道具 举报

0

主题

66

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-1-13 13:18:01 | 显示全部楼层
呵呵~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表