JPr*_*Pro 4 mysql sql greatest-n-per-group
我有一个查询,我想知道我得到的结果是否是我期待的结果.
表结构如下:
Table : results
ID TestCase Set Analyzed Verdict StartTime Platform
1 1010101 ros2 false fail 18/04/2010 20:23:44 P1
2 1010101 ros3 false fail 19/04/2010 22:22:33 P1
3 1232323 ros2 true pass 19/04/2010 22:22:33 P1
4 1232323 ros3 false fail 29/04/2010 22:22:33 P2
Table : testcases
ID TestCase type
1 1010101 NOSNOS
2 1232323 N212NS
Run Code Online (Sandbox Code Playgroud)
有没有办法在每个平台上只显示最新的失败?
在上述情况下
结果应该是:
ID TestCase Set Analyzed Verdict StartTime Platform type
2 1010101 ros3 false fail 19/04/2010 22:22:33 P1 NOSNOS
4 1232323 ros3 false fail 29/04/2010 22:22:33 P2 N212NS
Run Code Online (Sandbox Code Playgroud)
这应该为您提供每个平台的最新失败.它依赖于ids按时间顺序排列.
替换*您实际需要的列.
Select *
From results r
Join testcases t On ( t.testCase = r.testCase )
Where r.id In (
Select Max(id)
From results
Where verdict = 'fail'
Group By platform
)
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用a Left Join来仅获取startTime每个最大的行platform:
Select *
From results r
Join testcases t On ( t.testCase = r.testCase )
Left Join results r2 On ( r2.platform = r.platform
And r2.verdict = r.verdict
And r2.startTime > r.startTime )
Where r.verdict = 'fail'
And r2.id Is Null
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |