PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Rails 3, ActiveRecord, PostgreSQL - командата .uniq не работи?

Тъй като грешката гласи for SELECT DISTINCT, ORDER BY expressions must appear in select list .Следователно трябва изрично да изберете клаузата, по която поръчвате.

Ето един пример, подобен е на вашия случай, но обобщете малко.

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

Така че, включете изрично вашия ORDER BY клауза (в този случай RANDOM() ) с помощта на .select() . Както е показано по-горе, за да може вашата заявка да върне атрибутите на статията, трябва изрично да изберете и тях.

Надявам се това да помогне; късмет



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо postgres не създава базата данни?

  2. Резултати от групови заявки по месец и година в postgresql

  3. Как да направите разширението да не може да бъде преместено?

  4. Динамично генериране на колони в PostgreSQL

  5. COPY с динамично име на файл