Oracle Group By Issue

kar*_*ins 2 sql oracle group-by

我正在努力解决一个容易解决的问题(至少对我来说是MySQL/SqlServer!)

我会简化问题.假设我有下表:

表投票

ID  ID_IDEA DATE_VOTE   with ID_IDEA FK(IDEA.ID)
1   3       10/10/10
2   0       09/09/10
3   3       08/08/10
4   3       11/11/10
5   0       06/06/10
6   1       05/05/10
Run Code Online (Sandbox Code Playgroud)

我正在尝试为每个单独的想法找到最新的投票,这意味着我只想返回ID为4,2和6的行.

在Oracle看来,如果不使用SUM(),AVG等函数,就不能使用GROUP BY.我对它应该如何工作有点困惑.

请指教,

谢谢.

Mar*_*ith 7

SELECT id,
       id_idea,
       date_vote
FROM   (SELECT id,
               id_idea,
               date_vote,
               Row_number() over (PARTITION BY id_idea 
                                      ORDER BY date_vote DESC NULLS LAST) AS rn
        FROM   VOTE) AS t
WHERE  rn = 1  
Run Code Online (Sandbox Code Playgroud)