【发布时间】:2019-10-19 18:56:11
【问题描述】:
有一个表,其中包含假设以下行:
guid, id, deptName, studentName, Score, Year
guid, 1, IT, ABC, 50, 2019
guid, 2, IT, XYZ, 80, 2018
guid, 1, IT, ABC, 70, 2018
guid, 4, CS, LMN, 60, 2019
现在,我想要的预期结果是每个部门名称:上表的最新行,按年份降序排列,每个学生的前一年分数也降序排列。(表示当前行分数为当前分数,其第二行分数为上一个score 如果不可用,则 value 将为 null)
如何为这个结果编写 sql 查询?
guid, id, deptName, studentName, Score, Year, PreviousYearScore
guid, 1, IT, ABC, 50, 2019, 70
guid, 4, CS, LMN, 60, 2019, NULL
所以,结果模型将是:
id, deptName, studentName, Score, Year, PreviousYearScore
【问题讨论】:
-
嗨,找到我的答案
-
您好,我刚刚编辑了答案,我使用前导函数来获取上一年的分数,而不是 Lag()
标签: sql-server group-by sql-order-by