Можете да тествате 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
метод.