小编use*_*308的帖子

LEAD/LAG SQL Server 2012/Gaps和Islands

我在使用LEAD/LAG时遇到了一些问题.对于一组ID中的每一行,我想获得isAQI = 1的上一个/下一个源.在prevAQI和nextAQI列中,所需的输出如下所示.

在sql server中尝试过与Lag()相同的方法,但没有运气.任何帮助将非常感激!

在此输入图像描述

样本数据如下:

DECLARE @a TABLE ( id int, timest datetime, source char(2),
                   isAQI int, prevAQI char(2), nextAQI char(2))
INSERT @a VALUES
(6694   ,'2015-06-11 08:55:06.000'  ,'I'    ,1, NULL, 'A'), 
(6694   ,'2015-06-11 09:00:00.000'  ,'A'    ,1, 'I', 'I'),
(6694   ,'2015-06-11 09:11:49.000'  ,'C'    ,NULL, 'A', 'I'),
(6694   ,'2015-06-11 09:29:06.000'  ,'O'    ,NULL, 'A', 'I'),
(6694   ,'2015-06-11 09:29:06.000'  ,'DT'   ,NULL, 'A', 'I'),
(6694   ,'2015-06-11 09:34:11.000'  ,'DT'   ,NULL, 'A', 'I'),
(6694   ,'2015-06-11 09:34:11.000'  ,'O'    ,NULL, 'A', 'I'),
(6694   ,'2015-06-11 …
Run Code Online (Sandbox Code Playgroud)

gaps-and-islands sql-server-2012

0
推荐指数
1
解决办法
829
查看次数

标签 统计

gaps-and-islands ×1

sql-server-2012 ×1