我确定我知道该怎么做,但我的大脑现在让我失望了
以这个示例表为例,它显示了一天中不同时间从患者身上获取的生命体征读数:
我如何只返回每天的第一条记录?所以我最终得到这样的结果集:
请记住,在此示例中,表中的记录可能不方便按时间顺序排列。我只想通过查询找到每个 PatientID 的 ReadingTimestamp 列中的最小值,并显示该时间戳的相关温度、脉搏和呼吸。
我确定我知道该怎么做,但我的大脑现在让我失望了
以这个示例表为例,它显示了一天中不同时间从患者身上获取的生命体征读数:
我如何只返回每天的第一条记录?所以我最终得到这样的结果集:
请记住,在此示例中,表中的记录可能不方便按时间顺序排列。我只想通过查询找到每个 PatientID 的 ReadingTimestamp 列中的最小值,并显示该时间戳的相关温度、脉搏和呼吸。
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
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
正如您所说...但是使用子查询来消除所有记录,除了每个患者和日期的第一个记录...
Select * From yrTable t
Where readingtimestamp =
(Select Min(readingtimestamp)
From yrTable
Where PatientId = t.patientId
And DateDiff(day, readingtimestamp, t.readingtimestamp) = 0)