PostgreSQL, SELECT von max id

7

Indem ich libpq auf PG 9.1 verwende, versuche ich eine Abfrage zu schreiben, um Werte aus der Zeile mit dem höchsten Index 'my_id' zu erhalten:

%Vor%

Das gibt mir einen Fehler:

  

FEHLER: Aggregate nicht erlaubt in WHERE-Klausel ...

Wie schreibt man solche Anfragen richtig?

    
Wine Too 05.06.2013, 09:21
quelle

5 Antworten

19

Wenn es Ihr Ziel ist, die Zeile mit dem höchsten Wert für meine_ID zu erhalten, sollte die folgende Abfrage dasselbe Ziel erreichen.

%Vor%     
GordonM 05.06.2013, 09:23
quelle
5

Ordne einfach nach my_id und nimm nur den ersten Datensatz mit limit 1

%Vor%

Ein anderer, aber weniger performanter Weg wäre

%Vor%     
juergen d 05.06.2013 09:23
quelle
4

Unterabfrage kann Ihnen helfen

%Vor%     
Muhammad Hisham 05.06.2013 09:27
quelle
2
%Vor%

oder verwenden

%Vor%     
PSR 05.06.2013 09:23
quelle
0

Wenn Sie einen Index für my_id haben, sollten diejenigen mit der Unterabfrage schneller sein. Wenn Sie keinen Index haben, nehmen Sie die "Bestellung von". (obv. hängt von der Datenbankgröße ab, falls relevant)

    
Chris 05.06.2013 13:16
quelle