Di PostgreSQL Anda tidak dapat menggunakan ekspresi dengan alias diurutkan oleh. Hanya alias biasa yang berfungsi di sana. Kueri Anda akan terlihat seperti ini:
select distinct
l2.*,
l.user_id as l_user_id,
l.geopoint_id as l_geopoint_id
from locations l
left join locations l2 on l.geopoint_id = l2.geopoint_id
where l.user_id = 8
order by l2.geopoint_id, l.user_id = l2.user_id desc;
Saya berasumsi bahwa yang Anda maksud adalah l2.user_id=l.user_id
harus pergi dulu.
Ini adalah pesan yang relevan di milis umum PostgreSQL. Berikut ini adalah dokumentasi dari ORDER BY
klausa:
Setiap ekspresi dapat berupa nama nomor urut dari kolom keluaran (PILIH item daftar), atau dapat berupa ekspresi arbitrer yang dibentuk dari kolom input nilai .
Jadi tidak ada alias saat ekspresi digunakan.