Oracle SQL GROUP BY “et non à un GROUPE PAR l'expression” aide

J'ai une table some_table comme

+--------+----------+---------------------+-------+
| id     | other_id | date_value          | value |
+--------+----------+---------------------+-------+
| 1      | 1        | 2011-04-20 21:03:05 | 104   |
| 2      | 2        | 2011-04-20 21:03:04 | 229   |
| 3      | 3        | 2011-04-20 21:03:03 | 130   |
| 4      | 1        | 2011-04-20 21:02:09 | 97    |
| 5      | 2        | 2011-04-20 21:02:08 | 65    |
| 6      | 3        | 2011-04-20 21:02:07 | 101   |
| ...    | ...      | ...                 | ...   |
+--------+----------+---------------------+-------+

Et je veux les derniers dossiers pour la other_id 1, 2, et 3. L'évidence de la requête, je suis venu avec est

SELECT id, other_id, MAX(date_value), value
  FROM some_table 
 WHERE other_id IN (1, 2, 3) 
 GROUP BY other_id

Cependant, il crache un "not a GROUP BY expression" l'exception". J'ai essayé d'ajouter tous les autres champs (c'est à dire id, value) dans le GROUP BY clause, mais qui ne renvoie que tout, exactement comme s'il n'y avait pas de GROUP BY clause. (Eh bien, c'est logique aussi.)

Alors... je suis en train de lire l'Oracle SQL manuel, et tout ce que je peux trouver sont quelques exemples faisant intervenir uniquement des requêtes avec deux ou trois colonnes et quelques je-avez-jamais-vu-avant de fonctions de regroupement. Comment puis-je aller et retour

+--------+----------+---------------------+-------+
| id     | other_id | date_value          | value |
+--------+----------+---------------------+-------+
| 1      | 1        | 2011-04-20 21:03:05 | 104   |
| 2      | 2        | 2011-04-20 21:03:04 | 229   |
| 3      | 3        | 2011-04-20 21:03:03 | 130   |
+--------+----------+---------------------+-------+

(les dernières entrées pour chaque other_id) ? Merci.

OriginalL'auteur Yanick Rochon | 2011-04-28