我有一个SQL SELECT语句的情况如下:
我想选择并获得带有Aquila's
Test2标记的行,该行是30
作为标记列下的最后一个值,并省略空行。换句话说,我想按Test#对学生进行分组,然后选择不为空的最新测试标记。数据应按Test#DESC顺序排序。
我该如何实现?请帮忙。
我的桌子看起来像这样:
+------------+-------------+
ID| Test# | Student | Mark |
+------------+-------------+
1 | Test1 | Aquila | 20 |
2 | Test1 | Peter | 30 |
3 | Test1 | Jack | 40 |
4 | Test2 | Aquila | 30 |
5 | Test2 | PETER | 40 |
6 | Test2 | Jack | 50 |
7 | Test3 | Aquila | NULL |
8 | Test3 | Peter | 50 |
9 | Test3 | Jack | 60 |
+------------+-------------+
我希望输出为:
+------------+-------------+
ID| Test# | Student | Mark |
+------------+-------------+
4 | Test2 | Aquila | 30 |
8 | Test3 | Peter | 50 |
9 | Test3 | Jack | 60 |
+------------+-------------+
最佳答案
Select * from Students
where Mark is not NULL
order by Mark desc
//
desc
order by
假定掌握数据