Trong PostgreSQL, bạn không thể sử dụng biểu thức với bí danh theo thứ tự. Chỉ có bí danh đơn giản hoạt động ở đó. Truy vấn của bạn sẽ giống như sau:
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;
Tôi cho rằng ý của bạn là l2.user_id=l.user_id
nên đi trước.
Đây là thông báo có liên quan trên danh sách gửi thư chung của PostgreSQL. Sau đây là trong tài liệu của ORDER BY
mệnh đề:
Mỗi biểu thức có thể là số thứ tự tên của cột đầu ra (CHỌN mục danh sách) hoặc nó có thể là một biểu thức tùy ý được tạo từ đầu vào-cột giá trị .
Vì vậy, không có bí danh khi biểu thức được sử dụng.