sql >> Database >  >> RDS >> PostgreSQL

Rails 3 Query:krijg foutmelding bij gebruik van 'select' met 'order'

Je zou de SQL kunnen testen met deze SQLFIDDLE .

Alleen Sqlite en MySql ondersteunen dit gebruik, maar andere niet.

Raadpleeg dit postgresql-document .

Een beperking van deze functie is dat een ORDER BY-clausule die van toepassing is op het resultaat van een UNION-, INTERSECT- of EXCEPT-clausule alleen een uitvoerkolomnaam of -nummer kan specificeren, geen uitdrukking.

In jouw geval is het niet nodig om uniq te gebruiken, alle gebruikers-ID's zijn al duidelijk, dus waarom probeer je dit niet:

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

Ervan uitgaande dat de ID's gedupliceerd zijn, zou je kunnen uniq door ruby ​​in plaats van DB.

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

Dit script zal nooit sql genereren met distinct. Deze uniq na het plukken is een Array#uniq methode.




  1. geselecteerde waarde haal van db in dropdown-keuzevakoptie met behulp van php mysql-fout

  2. Oracle-database:DBMS_ALERT-gebruik met Java-toepassing

  3. SQL-triggerfunctie om dagelijks voortschrijdend gemiddelde BIJWERKEN bij INSERT

  4. Kruistabelquery met dynamische kolommen in SQL Server 2005 up