【发布时间】:2021-03-18 06:24:45
【问题描述】:
假设我有一个包含以下行的表
| test_no | test_count_no | test_status | test_run_no |
|---|---|---|---|
| 1 | 0 | STOP | 1 |
| 2 | 66 | FINISH | 1 |
| 3 | 67 | FINISH | 1 |
| 4 | 0 | STOP | 2 |
| 5 | 0 | STOP | 2 |
我需要获取具有test_status 的FINISH 并且具有最新的test_no 的行,
例如test_run_no=1,因为FINISH中有two test_status,我只需要获取最新的test_no,即3
如果是test_run_no=2,因为没有test_status=FINISH,我只需要返回第一行。
结果将是:
| test_no | test_count_no | test_status | test_run_no |
|---|---|---|---|
| 3 | 67 | FINISH | 1 |
| 4 | 0 | STOP | 2 |
我当前的查询是
SELECT MAX(test_table.test_run_no)
FROM test_table
WHERE test_table.run_status = 'FINISH'
GROUP BY test_table.test_no
知道我应该添加什么查询来获得结果吗?
【问题讨论】:
-
你使用的是什么 MySQL 版本?
-
对不起,我正在使用 mariadb,版本是 10.4.14
-
@Beginner 你得到解决方案了吗?