获取最新的"价值"次要标识符

时间:2014-08-17 16:59:59

标签: mysql greatest-n-per-group

我需要选择具有特定标识符(IDa)的最后一个值(具有最高IDb)。

例如 - 输入:

|IDa|IDb| text
================
| 1 | 1 | What
| 2 | 2 | code
| 3 | 1 | should
| 4 | 2 | I
| 5 | 2 | write
| 6 | 3 | here
| 7 | 2 | ?

想要输出:

|IDa|IDb| text
================
| 3 | 1 | should
| 7 | 2 | ?
| 6 | 3 | here

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

如果IDa设置为auto_increment,您可以使用自联接

select t.*
from t 
join (select max(IDa) IDa,IDb from t group by IDb ) t1
using(IDa,IDb) /* is equivalent to on(t.IDa = t1.IDa and t.IDb = t1.IDb)  */
order by t.IDb

同样在您的预期结果集中,您已为IDb 1提及what,根据您的问题,应该有should这个词,因为它是IDb 1的最后一个

Fiddle Demo