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

Rails 3, ActiveRecord, PostgreSQL - polecenie .uniq nie działa?

Ponieważ błąd stanowi for SELECT DISTINCT, ORDER BY expressions must appear in select list .Dlatego musisz wyraźnie wybrać klauzulę, według której zamawiasz.

Oto przykład, jest podobny do twojego przypadku, ale trochę uogólnij.

Article.select('articles.*, RANDOM()')
       .joins(:users)
       .where(:column => 'whatever')
       .order('Random()')
       .uniq
       .limit(15)

Więc wyraźnie dołącz swoje ORDER BY klauzula (w tym przypadku RANDOM() ) przy użyciu .select() . Jak pokazano powyżej, aby zapytanie zwróciło atrybuty artykułu, musisz je również wyraźnie zaznaczyć.

Mam nadzieję, że to pomoże; powodzenia



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Odejmij tygodnie od daty w PostgreSQL

  2. Jak działa Random() w PostgreSQL

  3. Jak usunąć końcowe zera z liczby dziesiętnej w PostgreSQL?

  4. Nie można znaleźć nagłówka 'libpq-fe.h podczas próby zainstalowania pg gem

  5. Włączanie obsługi PostgreSQL w PHP w systemie Mac OS X