sql >> Database >  >> RDS >> PostgreSQL

Rails 3, ActiveRecord, PostgreSQL - .uniq-opdracht werkt niet?

Aangezien de fout for SELECT DISTINCT, ORDER BY expressions must appear in select list .Daarom moet u expliciet de clausule selecteren waarvoor u bestelt.

Hier is een voorbeeld, het lijkt op jouw geval, maar generaliseer een beetje.

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

Vermeld dus expliciet uw ORDER BY clausule (in dit geval RANDOM() ) met behulp van .select() . Zoals hierboven weergegeven, moet u deze expliciet ook selecteren om ervoor te zorgen dat uw zoekopdracht de artikelkenmerken retourneert.

Ik hoop dat dit helpt; veel succes



  1. Beëindigt het gebruik van een open SQL-verbinding sluiten

  2. Waarom krijg ik deze SQLSyntaxErrorException:ORA-00933:SQL-opdracht is niet correct beëindigd wanneer ik deze JDBC-query probeer uit te voeren?

  3. 4 manieren om dubbele rijen te selecteren in PostgreSQL

  4. Is het mogelijk om een ​​door komma's gescheiden kolom op te vragen voor een specifieke waarde?