2017-04-07 2 views
2

Ich möchte Abfrage herausfinden, in welcher Gruppe von gefolgt von Reihenfolge von.Gruppe von Folge nach Reihenfolge von in Mysql

Mein Tisch ist 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 

Ich habe Benutzerabfrage

select * from resource_monitor Gruppe von server_ip um von id desc

Dies ergibt führen mich als

id | server_ip | rdp_connection 
2 | 192.168.1.46 |   12 
1 | 192.168.1.45 |   9 

Aber ich möchte, dass alle letzten Datensatz einzigartige server_ip

id | server_ip | rdp_connection 
4 | 192.168.1.45 |   4 
5 | 192.168.1.46 |   3 

Antwort

1

Sie tun können, mit SubQuery erhalten müssen, wie folgend

SELECT * 
    FROM 
     (SELECT * 
     FROM resource_monitor 
     ORDER BY id DESC) AS test 
    GROUP BY test.server_ip 
1

Sie zuerst max (id) unter Verwendung von Sub-Abfrage und verwenden Sie es in where-Klausel

select * from resource_monitor where id in 
     (select max(id) from resource_monitor group by server_ip) 
    order by id desc 
0

Sie Datenabtastwert suchen Sie scheinen den letzten Wert für jede server_ip benötigen

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