【发布时间】:2017-03-16 10:39:41
【问题描述】:
我正在使用 SQL Server 中的血压数据库,其中包含patient_id、timestamp(每分钟)和systolicBloodPressure。
我的目标是找到:
-
患者低于某个血压阈值的发作次数
一个情节由患者下降到某个阈值以下的时间图组成,直到患者超过阈值的时间戳。
每位患者每次发作的平均血压
每位患者每次发作的持续时间
到目前为止我所尝试的:
如果达到阈值,我只需创建一个设置为 1 的新列即可识别剧集。
select *
, CASE
when sys < threshold THEN '1'
from BPDATA
但是,我无法“识别”患者体内的不同发作;第 1 集第 2 集及其相对时间戳。
有人可以帮我解决这个问题吗?还是有人有更好的不同解决方案?
编辑:示例阈值为 100 的示例数据
ID Timestamp SysBP below Threshold
----------------------------------------------------
1 9:38 110 Null
1 9:39 105 Null
1 9:40 96 1
1 9:41 92 1
1 9:42 102 Null
2 12:23 95 1
2 12:24 98 1
2 12:25 102 Null
2 12:26 104 Null
2 12:27 94 1
2 12:28 88 1
2 12:29 104 Null
【问题讨论】:
-
我建议你删除这个问题。然后问关于第一个项目的另一个问题,以及样本数据和期望的结果。正如所写,这对于单个“问题”来说相当广泛。
-
我不认为它太宽泛,它可能都是一个单一的查询。无需创建新问题,但您绝对应该提供架构、示例数据等。
-
我包含了样本数据。如果您需要更多信息,请随时询问!
-
看起来像
gaps-and-islands。最佳查询取决于 SQL Server 的版本。
标签: sql sql-server threshold