PostgreSQL, SÉLECTIONNEZ à partir de max id
En utilisant libpq sur PG 9.1, je suis en train d'écrire la requête pour obtenir les valeurs à partir de la ligne avec la plus haute de l'indice 'mon_id':
SELECT my_id, col2, col3
FROM mytable
WHERE my_id = MAX(my_id)
Qui me donne l'erreur:
ERREUR: les agrégats sont pas autorisés dans la clause where...
Comment écrire une telle requête correctement?
OriginalL'auteur Wine Too | 2013-06-05
Vous devez vous connecter pour publier un commentaire.
Si votre objectif est d'obtenir la ligne avec la plus haute mon_id valeur, alors la requête suivante devrait atteindre le même objectif.
L'un de ces réponses qui me semble évident, avec le recul.
OriginalL'auteur GordonM
Ordre juste par
my_id
et de ne prendre que le premier enregistrement aveclimit 1
Un autre, mais moins performant serait
OriginalL'auteur juergen d
Sous-requête peut vous aider à
OriginalL'auteur Muhammad Hisham
ou de l'utilisation
OriginalL'auteur PSR
lorsque vous avez un indice sur mon_id ceux avec la sous-requête doit être plus rapide. quand vous n'avez pas un indice de prendre le "order by". (obv. dépend de la taille de base de données le cas échéant)
LIMIT 1
requêtes lorsqu'un indice est applicable.OriginalL'auteur Chris