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.我对它应该如何工作有点困惑.
请指教,
谢谢.
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)
归档时间: |
|
查看次数: |
978 次 |
最近记录: |