PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Wyświetl ostatnie dziecko w iteracji reakcji

Możesz wypróbować następujące:

Message.where(to: current_user.id)
       .order(:created_at)
       .group_by(&:user_id)
       .map{|_, x| x.last}

Powinno to dać ostatnią wiadomość (przez created_at ) z każdego user_id .

Dopóki używasz Postgresql, możesz wypróbować distinct on podejście:

Message.where(to: current_user.id)
       .order(user_id: :asc, created_at: :desc)
       .select('distinct on (user_id) *')



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę zmienić wielkość liter dla każdej litery w ciągu za pomocą SQL?

  2. Jak skonfigurować PostgreSQL, aby akceptował wszystkie połączenia przychodzące?

  3. Jak rozwiązać problemy z uprawnieniami podczas przywracania bazy danych PostgreSQL

  4. Generowanie identyfikatora UUID w instrukcji Postgres for Insert?

  5. Postgresql -bash:psql:nie znaleziono polecenia