sql >> Base de Datos >  >> RDS >> PostgreSQL

Rails 3, ActiveRecord, PostgreSQL - ¿El comando .uniq no funciona?

Como indica el error for SELECT DISTINCT, ORDER BY expressions must appear in select list .Por lo tanto, debe seleccionar explícitamente la cláusula por la que está ordenando.

Aquí hay un ejemplo, es similar a su caso pero generaliza un poco.

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

Por lo tanto, incluya explícitamente su ORDER BY cláusula (en este caso RANDOM() ) usando .select() . Como se muestra arriba, para que su consulta devuelva los atributos del artículo, también debe seleccionarlos explícitamente.

Espero que esto ayude; buena suerte