根据日期检索可用的第一条和最后一条记录



我正试图通过以下示例了解如何根据日期提取可用的第一条和最后一条记录:

SELECT clientID, AssessmentDate, TotalScore
FROM Client.Assessments 

对于每个客户(基于他们的客户ID(,我正在尝试检索他们第一次和最后一次可用评估的TotalScore(基于评估日期(。我处理很多评估条目,我通常会对他们的第一次评估进行前后统计分析,并将其与上次可用的评估进行比较。

最简单的方法是分两步思考。首先,为每个客户准备最短/最长日期。其次,选择具有这些日期的行。

SELECT clientsMaxMin.clientID
, ca.TotalScore
FROM 
(
SELECT clientID
, max(AssessmentDate) as maxDate
, min(AssessmentDate) as minDate
FROM Client.Assessments AS c
GROUP BY c.clientID
) clientsMaxMin  -- prepare a smaller table with max and min dates
JOIN Client.Assessments AS ca  -- from the original table select only rows with min/max values
ON ca.AssessmentDate = clientsMaxMin.maxDate
OR ca.AssessmentDate = clientsMaxMin.minDate

最新更新