很简单。
msg_id msisdn message
----------------------------------
1000 661000 text1
1001 661002 text2
1002 661004 text3
1003 661002 text4
1004 661002 text5
1005 661002 text6
我需要获得从最新到最旧排序的不同msisdn值以及最后一行中的所有值。请理解真实查询中有更多的coluns,所以我需要获得不同的msisdn - 而且还需要使用该msisdn获取最后一行的所有数据。
msisdn msg_id message
-----------------------------
661002 1005 text6
661004 1002 text3
661000 1000 text1
谢谢!
要清楚。我开始时:
通过msisdn
从表组中选择distinct(msisdn),max(msg_id)然而,提取有关max(msg_id)的所有信息都是问题...我需要查询中的整行,而不仅仅是msg_id ......
希望现在一切都清楚了。
答案 0 :(得分:3)
您可以使用包含每msg_id
个最大msisdn
的派生表,然后加入此表以获取其余列:
select t1.*
from mytable as t1
inner join (
select msisdn, max(msg_id) as last_id
from mytable
group by msisdn
) as t2 on t1.msisdn = t2.msisdn and t1.msg_id = t2.last_id
答案 1 :(得分:0)
select msisdn,msg_id,max(message)
from table1
group by msg_id,msisdn
order by msg_id desc