Sql 仅计算与多个条件匹配的最新条目

Sql 仅计算与多个条件匹配的最新条目,sql,azure-sql-database,Sql,Azure Sql Database,我有一个与此类似的数据库表,但还有更多条目: PupilId | PeriodId | Assessment ------------------------------- 1 | 10 | 7 1 | 30 | 7 1 | 50 | 7 2 | 20 | 7 3 | 10 | 7 3 | 20 | 8 我想找出学生的数量,即在某个时间点得到给定评估的

我有一个与此类似的数据库表,但还有更多条目:

PupilId | PeriodId | Assessment
-------------------------------
1       | 10       | 7
1       | 30       | 7
1       | 50       | 7
2       | 20       | 7
3       | 10       | 7
3       | 20       | 8
我想找出学生的数量,即在某个时间点得到给定评估的不同学童的数量,包括给定的周期ID。只能使用给定周期ID之前或上的最新评估

例如:

在周期ID 100或之前获得7分的学生人数=2分1和2分 在第10期或之前获得7分的学生人数=第1期和第3期的学生人数 在周期ID 30或之前获得8分的学生人数=1分3秒 这是针对SQLAzure的


非常感谢。

好的,没有答案,下面是我从另一个来源获得帮助后得出的结论:

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
希望这能帮助其他人解决同样的问题