Anda dapat menguji SQL dengan SQLFIDDLE ini .
Hanya Sqlite dan MySql yang mendukung penggunaan ini, tetapi yang lainnya tidak.
Lihat dokumen postgresql ini .
Batasan fitur ini adalah bahwa klausa ORDER BY yang diterapkan pada hasil klausa UNION, INTERSECT, atau EXCEPT hanya dapat menentukan nama atau nomor kolom keluaran, bukan ekspresi.
Untuk kasus Anda, tidak perlu menggunakan uniq, semua id pengguna sudah berbeda, jadi mengapa Anda tidak mencoba ini:
User.order("email DESC").pluck(:id)
Dengan asumsi id diduplikasi, Anda dapat uniq dengan ruby alih-alih DB.
User.order("email DESC").pluck(:id).uniq
Script ini tidak akan pernah menghasilkan sql dengan yang berbeda. uniq
. ini setelah dipetik adalah Array#uniq
metode.