Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Schienen zeigen den letzten Wert nach der Gruppierung

Wenn ich das richtig verstehe, fügen Sie jedes Mal, wenn Sie den Status eines Servers aktualisieren, einen neuen Datensatz mit einem Zeitstempel und Status hinzu? Wenn das richtig ist, müssen Sie GROUP BY server_id machen und ORDER BY date DESC .

Das kann in SQL ausgedrückt werden als

SELECT * FROM servers GROUP BY server_id ORDER BY date DESC;

oder in ActiveRecord von Rails als

Server.all.group(:server_id).order(:created_at => :desc)

(Als Nebenbemerkung würde ich empfehlen, dieses Modell so zu nennen wie ServerStatus statt nur Server - es stellt den Status dar, nicht den Server selbst.)