sql >> Databáze >  >> RDS >> PostgreSQL

Rails 3, ActiveRecord, PostgreSQL - příkaz .uniq nefunguje?

Protože chyba uvádí for SELECT DISTINCT, ORDER BY expressions must appear in select list .Proto musíte výslovně vybrat klauzuli, kterou objednáváte.

Zde je příklad, je podobný vašemu případu, ale trochu zobecněte.

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

Takže explicitně uveďte svůj ORDER BY klauzule (v tomto případě RANDOM() ) pomocí .select() . Jak je uvedeno výše, aby váš dotaz vrátil atributy článku, musíte je také explicitně vybrat.

Doufám, že to pomůže; hodně štěstí



  1. Jak provádět operace aktualizace na sloupcích typu JSONB v Postgresu 9.4

  2. Structured Query Language – důležitost učení se SQL

  3. Vytvořte Computed Column v SQL Server pomocí T-SQL

  4. Přepnutí databáze a převzetí služeb při selhání pro weby Drupal využívající MySQL nebo PostgreSQL