PostgreSQL wird mich dazu bringen, kleine Tiere zu schlagen. Ich mache die folgende SQL-Anweisung für MySQL, um eine Liste von Städten/Staaten/Ländern zu erhalten, die einzigartig sind.Wie mache ich eine DISTINCT und ORDER BY in PostgreSQL?
SELECT DISTINCT city
, state
, country
FROM events
WHERE (city > '')
AND (number_id = 123)
ORDER BY occured_at ASC
Aber tun, dass PostgreSQL diesen Fehler werfen macht:
PGError: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list
Aber wenn ich occured_at zum SELECT hinzufügen, dann tötet es immer die eindeutige Liste zurück.
Ergebnisse mit MySQL und erste Abfrage:
BEDFORD PARK IL US
ADDISON IL US
HOUSTON TX US
Ergebnisse, wenn ich hinzufügen occured_at zum 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
Der erste Satz von Ergebnissen ist, was ich letztlich mit PostgreSQL zu bekommen versuchen, .
Larry, der zweite hat den Trick gemacht. Und sorry wegen der GROUP BY im Titel ... Gehirn ist viel davon, über hundert verschiedene Dinge zu versuchen und so war mein Verstand woanders. :) – Shpigford
Immer ein Vergnügen, jemanden aushelfen zu können. –