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

Rails 3 Query:получаване на грешка при използване на 'select' с 'order'

Можете да тествате SQL с този SQLFIDDLE .

Само Sqlite и MySql поддържат тази употреба, но други не.

Вижте този postgresql документ .

Ограничение на тази функция е, че клауза ORDER BY, прилагана към резултата от клауза UNION, INTERSECT или EXCEPT, може да указва само име или номер на изходна колона, а не израз.

За вашия случай няма нужда да използвате uniq, всички потребителски идентификатори вече са различни, така че защо не опитате това:

User.order("email DESC").pluck(:id)

Ако приемем, че идентификационните номера са дублирани, бихте могли да uniq по ruby ​​вместо DB.

User.order("email DESC").pluck(:id).uniq

Този скрипт никога няма да генерира sql с distinct. Този uniq след pluck е Array#uniq метод.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CTE и парадоксът за рождения ден

  2. Файлове за развитие на Playframework, съвместими с postgres и h2

  3. Създайте sql таблица от dask dataframe, като използвате map_partitions и pd.df.to_sql

  4. Предотвратяване на съседни/припокриващи се записи с EXCLUDE в PostgreSQL

  5. postgresql - добавяне на булева колона към набора таблици по подразбиране