我想从一个基于多个其他列的列中获取一个值。我相信这并没有那么难,我不知道该怎么做。这是我从中提取数据的表格。
personid | 课程名称 | 术语名称任务 | 日期 | 通过核心|
---|---|---|---|---|
1 | 12346 | >代数I | 第1学期 | 第2学期2022年4月1日1 |
2 | 12346 | >代数I | 第1学期 | 进度2022年2月1日|
3 | 12346 | >代数I | 第2学期 | 第二学期|
4 | 12346 | 代数I | 第2学期 | 进度2022年1月21日<1>|
5 | 12346 | 英语I | 第1学期 | 第2学期2022年1月21日|
6 | 13456 | 英语I第1学期 | 进度2021年12月17日||
7 | 12346 | 英语I | 第2学期 | 第二学期|
8 | 12346 | 英语I | 第2学期进度2022年1月22日<1>||
9 | 456255 | 几何第1学期 | 进度2021年12月15日||
10 | 456255 | 几何第1学期 | 第2学期2022年1月12日||
11 | 456255 | 几何结构第2学期 | 进度2022年1月25日0 | |
12 | 456255 | 几何第2学期第1学期 | 2022年1月31日||
13 | 456255 | 物理1 | 第2学期 | 第1学期2022年6月1日|
14 | 456255 | 物理1 | 第2学期 | 进度2021年12月 | //tr>
15 | 456255 | 物理1 | 第2学期 | 第二学期|
16 | 456255 | 物理1 | 第2学期 | 进度2022年1月25日<1>
您正在查找每个组的最新行,您可以使用row_number
select t.personid, t.coursename, t.termname, t.Passingscore
from (
select *,
Row_Number()
over (partition by personID, courseName, termName order by [date] desc) rn
from t
)t
where rn=1;