sql >> Databasteknik >  >> RDS >> PostgreSQL

Rails 3, ActiveRecord, PostgreSQL - .uniq-kommandot fungerar inte?

Eftersom felet säger for SELECT DISTINCT, ORDER BY expressions must appear in select list .Därför måste du uttryckligen välja för den klausul du beställer efter.

Här är ett exempel, det liknar ditt fall men generalisera lite.

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

Så inkludera uttryckligen din ORDER BY sats (i det här fallet RANDOM() ) med .select() . Som visas ovan måste du också uttryckligen välja dem för att din fråga ska returnera artikelattributen.

Jag hoppas det här hjälper; lycka till



  1. Hur man övervakar PostgreSQL som körs inuti en Docker-behållare:Del två

  2. LOCALTIMESTAMP Exempel – MySQL

  3. Konvertera från DateTime till INT

  4. Få rad där datetime-kolumnen =idag - SQL-server noob