PostgreSQL ne me permet pas de grouper une colonne avec une commande

Dans PostgreSQL, je veux récupérer tous les utilisateurs à la fois et de les ordonner par date.

C'est ma requête:

SELECT id, useridx, isread, message, date
  FROM messages
 WHERE isread = 1
 GROUP BY useridx
 ORDER BY date DESC

C'est un des données de l'échantillon:

------------------------------------------------------
+  id  |  useridx |  isread  |  messsage |  date     +
------------------------------------------------------
   1   |  1       |  0        | Hello    |  2012-01-01    
   2   |  2       |  1        | Hi       |  2012-01-02    
   3   |  3       |  1        | Test     |  2012-01-03    
   4   |  3       |  0        | My Msg   |  2012-01-04    
   5   |  4       |  1        | sadasd   |  2012-01-05    
   6   |  4       |  1        | sdfsdfd  |  2012-01-06    
   7   |  4       |  0        | sdfsdfsd |  2012-01-07    
   8   |  5       |  0        | 5345634  |  2012-01-08
   9   |  6       |  0        | sdfdfsd  |  2012-01-09
   10  |  7       |  0        | sdfsdfsf |  2012-01-10
------------------------------------------------------

Maintenant, ce que je veux faire est de récupérer cette table en les regroupant par useridx et de l'ordre par date.

Résultat Attendu:

------------------------------------------------------
+  id  |  useridx |  isread  |  messsage |  date     +
------------------------------------------------------  
   6   |  4       |  1        | sdfsdfd  |  2012-01-06 
   3   |  3       |  1        | Test     |  2012-01-03  
   2   |  2       |  1        | Hi       |  2012-01-02    
------------------------------------------------------

Résultat Réel

ERROR:  column "messages.date" must appear in the GROUP BY clause or be used in an aggregate function

Je ne veux pas de date de groupe. Je veux juste groupe avec useridx et de les trier par date DESC.

Toute aide/l'idée est apprécié!

Note: j'ai également essayé Distinctes. Ne pas l'adapter à mes besoins ou j'ai tort.

Je suis très confus et coincé entre DISTINCT ON et rank() méthodes.

Conclusion:
Pour qui se le même problème ici peut lire cela comme une réponse. @Kgrittn et @mu est trop court réponses sont correctes. Je vais continuer à utiliser à la fois des réponses et des schémas sur mon projet et dans le temps, je peux comprendre qui est le meilleur -je pense-. Alors, choisissez-en un et de poursuivre votre travail. Vous serez très bien.

Dernière mise à Jour: Parfois, Distinctes Sur exclut certains identifiants de résultat. Disons que j'ai une colonne id et j'ai 6 lignes qui est la même. Donc, distinctes sur exlude à partir du résultat, MAIS le classement (en) résultat juste. Ainsi, l'utilisation de rang()!

source d'informationauteur flower58