PostgreSQL sắp sửa bắt tôi làm động vật nhỏ. Tôi đang thực hiện câu lệnh SQL sau đây cho MySQL để có được một danh sách thành phố/tiểu bang/quốc gia duy nhất.Làm cách nào để thực hiện DISTINCT và ORDER BY trong PostgreSQL?
SELECT DISTINCT city
, state
, country
FROM events
WHERE (city > '')
AND (number_id = 123)
ORDER BY occured_at ASC
Nhưng làm điều đó làm cho PostgreSQL ném lỗi này:
PGError: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list
Nhưng nếu tôi thêm occured_at để SELECT, sau đó nó giết nhận lại danh sách duy nhất.
Kết quả sử dụng MySQL và truy vấn đầu tiên:
BEDFORD PARK IL US
ADDISON IL US
HOUSTON TX US
Kết quả nếu tôi thêm occured_at để SELECT:
BEDFORD PARK IL US 2009-11-02 19:10:00
BEDFORD PARK IL US 2009-11-02 21:40:00
ADDISON IL US 2009-11-02 22:37:00
ADDISON IL US 2009-11-03 00:22:00
ADDISON IL US 2009-11-03 01:35:00
HOUSTON TX US 2009-11-03 01:36:00
Tập đầu tiên của kết quả là những gì tôi đang cố gắng để cuối cùng nhận được với PostgreSQL .
Larry, người thứ hai đã thực hiện thủ thuật. Và xin lỗi về GROUP BY trong tiêu đề ... bộ não là rất nhiều từ cố gắng về một trăm điều khác nhau và vì vậy tâm trí của tôi là ở một nơi khác. :) – Shpigford
Luôn luôn là một niềm vui để có thể giúp đỡ một ai đó. –