我有一个类似于此的数据库表(但还有更多条目):
PupilId | PeriodId | Assessment
-------------------------------
1 | 10 | 7
1 | 30 | 7
1 | 50 | 7
2 | 20 | 7
3 | 10 | 7
3 | 20 | 8
我想找到在某个时间点(包括给定的PeriodId)获得特定评估的学生人数(即不同的PupilId)。只应使用给定PeriodId之前或之后的最新评估。
例如:
这适用于SQL Azure。
非常感谢。
答案 0 :(得分:0)
好的,没有答案,所以这是我在另一个来源的帮助下想出来的:
SELECT COUNT(1)
FROM (
SELECT PupilId AS pupil_id, Max(PeriodId) AS max_period
FROM steph1
WHERE PeriodId <= 100
GROUP BY PupilId
) steph2, steph1
WHERE
PupilId=pupil_id AND
max_period = PeriodId AND
Assessment = 7
希望能帮助其他人解决同样的问题。