在没有空值的列中选择最后一个值

时间:2019-02-12 16:56:04

标签: mysql sql null

我有一个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   |
+------------+-------------+

2 个答案:

答案 0 :(得分:0)

MailItem.HTMLBody

// Select * from Students where Mark is not NULL order by Mark desc desc假定掌握数据

答案 1 :(得分:0)

我终于按照如下方法自己编写了select语句,它起作用了。如果有人在那里有类似的问题,这是工作代码。

SELECT * FROM table 
WHERE ID IN (
SELECT MAX(ID) 
FROM table WHERE mark IS NOT NULL
GROUP BY Test# DESC);