Kim*_*cks 6 mysql mysql-workbench dml greatest-n-per-group sqlyog
有一个表Remark包含如下所示的数据:
SerialNo | RemarkNo | Desp
=============================================
10 | 1 | rainy
10 | 2 | sunny
11 | 1 | sunny
11 | 2 | rainy
11 | 3 | cloudy
11 | 4 | sunny
12 | 1 | rainy
Run Code Online (Sandbox Code Playgroud)
什么查询将返回以下结果:
10 | 1 | rainy
11 | 3 | cloudy
12 | null | null
Run Code Online (Sandbox Code Playgroud)
也就是说,应该返回每组中的第二个最后一条记录?
假设SerialNo的所有RemarkNo都是连续的.备注数量越大,评论越晚.因此,SerialNo 10的第二个RemarkNo是1,Desp'rainy'.
小智 5
尝试:
select s.SerialNo, r.RemarkNo, r.Desp
from (select SerialNo, max(RemarkNo) maxRemark from Remark group by SerialNo) s
left join Remark r on s.SerialNo = r.SerialNo and s.maxRemark-1 = r.RemarkNo
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2891 次 |
| 最近记录: |