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

Zapytanie Rails 3:pojawia się błąd podczas używania 'select' z 'order'

Możesz przetestować SQL za pomocą tego SQLFIDDLE .

Tylko Sqlite i MySql obsługują to użycie, ale inne nie.

Zapoznaj się z tym dokumentem postgresql .

Ograniczeniem tej funkcji jest to, że klauzula ORDER BY mająca zastosowanie do wyniku klauzuli UNION, INTERSECT lub EXCEPT może określać tylko nazwę lub numer kolumny wyjściowej, a nie wyrażenie.

W twoim przypadku nie ma potrzeby używania uniq, wszystkie identyfikatory użytkownika są już różne, więc dlaczego nie spróbować tego:

User.order("email DESC").pluck(:id)

Zakładając, że identyfikatory są zduplikowane, można by uniknąć uniq przez ruby ​​zamiast DB.

User.order("email DESC").pluck(:id).uniq

Ten skrypt nigdy nie wygeneruje sql z odrębnym. Ten uniq po szarpnięciu jest Array#uniq metoda.




  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 zmienić pole identyfikatora automatycznego numerowania na typ seryjny w PostgreSQL?

  2. Kombinacje zapytań z zagnieżdżoną tablicą rekordów w typie danych JSON

  3. Jak włączyć profiler funkcji PostgreSQL?

  4. Skanowanie sekwencyjne Postgresql ma niską wydajność na 500 milionach wierszy

  5. HikariCP Postgresql Driver twierdzi, że nie akceptuje adresu URL JDBC