我想找出查询在哪个group by后面按顺序排序。
我的表格是 resource_monitor
id | server_ip | rdp_connection
1 | 192.168.1.45 | 9
2 | 192.168.1.46 | 12
3 | 192.168.1.45 | 8
4 | 192.168.1.45 | 4
5 | 192.168.1.46 | 3
我有用户查询
按资讯署desc的server_ip顺序从资源_监察组中选择*
这给我的结果是
id | server_ip | rdp_connection
2 | 192.168.1.46 | 12
1 | 192.168.1.45 | 9
但我想要所有唯一的server_ip的最后记录
id | server_ip | rdp_connection
4 | 192.168.1.45 | 4
5 | 192.168.1.46 | 3
答案 0 :(得分:1)
您需要使用子查询获得第一个max(id)并在where子句
中使用它 select * from resource_monitor where id in
(select max(id) from resource_monitor group by server_ip )
order by id desc
答案 1 :(得分:1)
您可以使用SubQuery执行以下操作
SELECT *
FROM
(SELECT *
FROM resource_monitor
ORDER BY id DESC) AS test
GROUP BY test.server_ip
答案 2 :(得分:0)
向您展示数据样本似乎需要每个server_ip的最后一个值
select id, server_ip, rdp_connection
from resource_monitor
where ( id,server_ip ) in
( select max(id) as id, server_ip from resource_monitor
group by server_ip )
order by id desc