+ -
当前位置:首页 → 问答吧 → 求助:判断最近连续3次登入次数

求助:判断最近连续3次登入次数

时间:2011-12-23

来源:互联网


表名 Log_base

字段
Workdate UserID Level
2011-12-16 907 3
2011-12-17 907 3
2011-12-18 907 3
2011-12-20 1100 4
2011-12-21 1100 4
2011-12-23 1100 4
2011-12-16 1200 5
2011-12-19 1200 5
2011-12-20 1200 5
2011-12-21 1200 5
2011-12-22 1200 6
2011-12-16 1300 3
2011-12-18 1300 6
2011-12-19 1300 9


一个UserId一天只有一条登入记录,用户没登入的话就没数据。

需要判断连续的3次登入记录中level是否相等,如果相等显示1,不相等显示0


不是连续的3天,是判断任意的一天,往后连续3次登入的记录level的值是否一样。
例如用户A的数据是如下
2011-12-16 A 3
2011-12-17 A 3
2011-12-18 A 3
2011-12-20 A 4

在第四条记录等级改变。那么结果应该是

2011-12-16 A 3 1
2011-12-17 A 3 0
2011-12-18 A 3 0
2011-12-20 A 4 0


不会程序,只懂一点点数据库,求助。。。

作者: a79623615   发布时间: 2011-12-23

算是个思路吧:

create table Log_base(
Workdate datetime,
UserID int,
Level tinyint)

insert into Log_base(Workdate,UserID,Level) values('2011-12-16',907,3)
insert into Log_base(Workdate,UserID,Level) values('2011-12-17',907,3)
insert into Log_base(Workdate,UserID,Level) values('2011-12-18',907,3)
insert into Log_base(Workdate,UserID,Level) values('2011-12-20',1100,4)
insert into Log_base(Workdate,UserID,Level) values('2011-12-21',1100,4)
insert into Log_base(Workdate,UserID,Level) values('2011-12-23',1100,4)
insert into Log_base(Workdate,UserID,Level) values('2011-12-16',1200,5)
insert into Log_base(Workdate,UserID,Level) values('2011-12-19',1200,5)
insert into Log_base(Workdate,UserID,Level) values('2011-12-20',1200,5)
insert into Log_base(Workdate,UserID,Level) values('2011-12-21',1200,5)
insert into Log_base(Workdate,UserID,Level) values('2011-12-22',1200,6)
insert into Log_base(Workdate,UserID,Level) values('2011-12-16',1300,3)
insert into Log_base(Workdate,UserID,Level) values('2011-12-18',1300,6)
insert into Log_base(Workdate,UserID,Level) values('2011-12-19',1300,9)

select UserID,
case
when sum(Level)=COUNT(*)*MIN(Level) then 1
else 0
end as 'Status'
from Log_base
--where Workdate>''
group by UserID

本来我只给美女提供意见的,今天俗心忽起,也算有缘吧。

作者: yanyuchonglou   发布时间: 2011-12-23