MySQL连续数统计

原创 2015年07月06日 16:57:01
CREATE TABLE [dbo].Jqfk NOT NULL,
[yhh] char NULL,CREATE TABLE [dbo].Jqfk NOT NULL,
[yhh] char NULL,
[cbrq] nvarchar NULL,
[ysl] [int] NULL,
)
[cbrq] [nvarchar](19) NULL,
[ysl] [int] NULL,
)
INSERT INTO jqfk VALUES ('B173022031201','2015-01-08 10:12:30',0);
INSERT INTO jqfk VALUES ('B211001024011','2015-01-08 10:46:13',13);
INSERT INTO jqfk VALUES ('B211001024012','2015-01-08 10:46:13',0);
INSERT INTO jqfk VALUES ('B211001024013','2015-01-08 10:46:13',3);
INSERT INTO jqfk VALUES ('B211001024014','2015-01-08 10:46:13',0);
INSERT INTO jqfk VALUES ('B173022031201','2015-02-08 10:46:13',0);
INSERT INTO jqfk VALUES ('B211001024011','2015-02-08 10:46:13',0);
INSERT INTO jqfk VALUES ('B211001024012','2015-02-08 10:46:13',13);
INSERT INTO jqfk VALUES ('B211001024013','2015-02-08 10:46:13',11);
INSERT INTO jqfk VALUES ('B211001024014','2015-02-08 10:46:13',0);
INSERT INTO jqfk VALUES ('B173022031201','2015-03-08 10:46:13',0);
INSERT INTO jqfk VALUES ('B211001024011','2015-03-08 10:46:13',0);
INSERT INTO jqfk VALUES ('B211001024012','2015-03-08 10:46:13',0);
INSERT INTO jqfk VALUES ('B211001024013','2015-03-08 10:46:13',0);
INSERT INTO jqfk VALUES ('B211001024014','2015-03-08 10:46:13',0);
INSERT INTO jqfk VALUES ('B173022031201','2015-04-08 10:46:13',13);
INSERT INTO jqfk VALUES ('B211001024011','2015-04-08 10:46:13',0);
INSERT INTO jqfk VALUES ('B211001024012','2015-04-08 10:46:13',12);
INSERT INTO jqfk VALUES ('B211001024013','2015-04-08 10:46:13',0);
INSERT INTO jqfk VALUES ('B211001024014','2015-04-08 10:46:13',0);

需要连续统计最新日期开始,为0的数。比如上面统计结果应该是

1 B211001024014 4
2 B211001024011 3
3 B211001024013 2


SQL如下

SELECT yhh,MAX(s) nums from (danielinbiti
select a.*
,case when @f=0 then @cust:=yhh end t1
,@f:=1
,case when yhh!=@cust then @flag:=0 end t
,case when ysl!=0 and @flag=0 then @flag:=1 end f
,case when ysl=0 and @flag=0 then @cnt:=@cnt+1 else @cnt:=0 end c
,@cnt s,@cust:=yhh,@flag f2 from (
select * from jqfk order by yhh,cbrq desc 
) a,(select @cust:='') r,(select @cnt:=0) r2,(select @flag:=0) r3,(select @f:=0) r4
) k where f2=0 group by yhh order by nums desc


相关文章推荐

mysql 统计连续登录天数

在网上看到一道有意思的题目,大意是如何在mysql查询连续的时间内登录的次数。原文链接:      http://www.oschina.net/question/573517_118821 ...

MySQL 获取连续范围

1、原始数据 2、把running_number转成数据,并加上一列有序数字SELECT d.running_number+0 running_number,@a:=@a+1 rn FROM dev...
  • p_3er
  • p_3er
  • 2015年04月21日 15:56
  • 1368

Mysql 循环插入数量级数据 供大数据测试

1:定义存储过程 DELIMITER $$ CREATE PROCEDURE dowhile2()    BEGIN      DECLARE i INT DEFAULT 0;      START ...

Eoj 2854 统计包含m个连续1子串的字符串的个数

统计特定字串模式的个数 Time Limit:1000MS Memory Limit:65536KB Total Submit:321 Accepted:173Description 在0和1组成...
  • fawks96
  • fawks96
  • 2017年03月02日 01:55
  • 456

图像处理 之 统计数组中连续0/1的个数

有时,我们需要统计数组中连续的0/1的个数,或者矩阵中每一行或列中连续0/1的个数,传统方法需要使用两层循环来实现,对于matlab而言太不高效了,有木有又简便又高效的方法呢? 下面以统计连续0的个...

java实现统计N!尾部连续0的个数

问题描述:      对任意输入的正整数N,编写java程序求N!的尾部连续0的个数,并指出计算复杂度。如:18!=6402373705728000,尾部连续0的个数是3。 (不用考虑数值...
  • csuccm
  • csuccm
  • 2012年05月03日 09:59
  • 887

oracle中某列连续相同值的记录数统计(一个简单的例子)

row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编...

往mysql中插入 自增id不连续(曾经的坑)

往mysql中插入 自增id不连续
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL连续数统计
举报原因:
原因补充:

(最多只允许输入30个字)