首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql 延续数值中的空缺值 间隔值 行转列

2012-12-30 
sql 连续数值中的空缺值 间隔值 行转列表结构如下:ID(自增),BasicId(个体id),DayAge(日龄)示例数据:115021

sql 连续数值中的空缺值 间隔值 行转列
表结构如下:

ID(自增),BasicId(个体id),DayAge(日龄)

示例数据:

1    1   50

2    1   51

3    1   55

4    1   56

5    1   58

6    1   60

7    1   62

8    2   55

9    2   56

10   2   57

11   2   60
 
12   2   61

13   2   65

现在想要统计每个个体的不连续天数(只取中间间隔的差值,开区间),从大到小,取前10个。

结果表如下:

BasicId Span1 Span2 Span3 Span4 Span5 Span6......10

1        3      1     1    1     0      0     

2        3      2     0    0     0      0

现在这个功能基本实现了,几千条的数据量还可以。。。

但是数据稍微多点的时候就根本hold不住了(20W),需要1个多小时才能跑出来,现在每天会增加3、5千的数据量,所以这样的代码也不是办法。
代码如下:
sql 延续数值中的空缺值 间隔值 行转列
请各位大神帮忙想想办法!
[解决办法]
你如果实在想用SQL做报表的话,就先把中间结果存到临时表里,再把临时表行转列

热点排行