sql >> Database teknologi >  >> RDS >> PostgreSQL

Rails 3-forespørgsel:får fejl, mens du bruger 'vælg' med 'ordre'

Du kan teste SQL'en med denne SQLFIDDLE .

Kun Sqlite og MySql understøtter denne brug, men andre gør ikke.

Se dette postgresql-dokument .

En begrænsning ved denne funktion er, at et ORDER BY-udtryk, der gælder for resultatet af et UNION-, INTERSECT- eller EXCEPT-udtryk, kun kan angive et outputkolonnenavn eller -nummer, ikke et udtryk.

I dit tilfælde er der ikke behov for at bruge uniq, alle bruger-id'er er allerede forskellige, så hvorfor prøver du ikke dette:

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

Forudsat at id'erne er duplikeret, kan du uniq ved ruby ​​i stedet for DB.

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

Dette script vil aldrig generere sql med distinkt. Denne uniq efter pluk er en Array#uniq metode.




  1. Få MAX-værdi fra én kolonne og MIN fra en anden kolonne

  2. Er der en automatisk måde at generere et rollback-script, når man indsætter data med LINQ2SQL?

  3. Sådan genereres 5 tilfældige tal i mysql-lagret procedure

  4. Sådan deaktiveres Change Data Capture (CDC) på en database i SQL Server - SQL Server Tutorial