命令和组mysql

时间:2018-05-24 04:56:48

标签: mysql select greatest-n-per-group

我是查询mysql的初学者

我有像这样的表行和值

enter image description here

我想从表中选择:按ID降序排序,按电话分组 所以结果将是这样的

enter image description here

请任何身体帮助我..

我已经像这样放了

通过ID desc

按电话顺序从1组中选择*

但错了

谢谢

3 个答案:

答案 0 :(得分:3)

要获取每部电话的最新消息属性,您可以使用自我加入

select a.*
from messages a
join (
    select phone, max(id) id
    from messages
    group by phone
) b on a.phone = b.phone and a.id = b.id

或使用左连接

select a.*
from messages a
left join messages b on a.phone = b.phone and a.id < b.id
where b.phone is null

答案 1 :(得分:1)

尝试以下查询

select phone, text from messages group by phone order by id DESC

答案 2 :(得分:0)

它不适用于该群组,而不是尝试以下查询

SELECT text,phone
FROM @tblPhone tmp
WHERE id = (SELECT MAX(Id) FROM @tblPhone tmp1 WHERE tmp1.PHONE = tmp.Phone)
ORDER BY Id desc