我确定我知道怎么做但我的大脑现在让我失望
以此示例表格显示一天中不同时间从患者身上获取的生命体征读数:
如何每天只返回FIRST记录?所以我最终得到了这样的结果集:
请记住,在此示例中,表中的记录可能不按时间顺序排列。我只想查询每个PatientID的ReadingTimestamp列中的最低值,并显示该时间戳的相关温度,脉冲和呼吸。
答案 0 :(得分:1)
select y1.* from your_table y1
inner join
(
select patientid, min(readingtimestamp) as ts
from your_table
group by date(readingtimestamp), patientid
) y2 on y2.patientid = y1.patientid
and y2.ts = y1.readingtimestamp
答案 1 :(得分:1)
正如您所说的那样......但是使用子查询来消除除每个患者和日期的第一个记录之外的所有记录......
Select * From yrTable t
Where readingtimestamp =
(Select Min(readingtimestamp)
From yrTable
Where PatientId = t.patientId
And DateDiff(day, readingtimestamp, t.readingtimestamp) = 0)
答案 2 :(得分:1)
Select PatitentId, ReadingTimeStamp, Temperature,Pulse Respiration from
(Select Row_Number() Over(Partition By PatitentId order by ReadingTimeStamp) as Row,*
from TableName
) T where Row=1