SELECT name,Age,Type,Date,row_number() over(partition by name ORDER BY Date) as RankFROM tableA;
例如 :
name Age Type Date RankBen 12 A 2013/02/01 1 Rod 14 A 2013/02/05 2Zed 13 B 2013/03/09 3Ken 12 A 2013/04/02 4 Jed 14 B 2013/05/01 5Mar 13 A 2013/05/04 6Nic 12 A 2013/06/02 7Jen 15 A 2013/06/09 8
预期产出:
name Age Type Date RankMar 13 A 2013/05/04 1Nic 12 A 2013/06/02 2Jen 15 A 2013/06/09 3解决方法 尝试
WITH qry AS ( SELECT "name","Age","Type","Date",ROW_NUMBER() OVER (PARTITION BY "Type" ORDER BY "Date") rank FROM tableA)SELECT "name","Date" FROM qry WHERE rank = 1
输出:
| name | AGE | TYPE | DATE |-------------------------------------------------------| Ben | 12 | A | February,01 2013 00:00:00+0000 || Zed | 13 | B | march,09 2013 00:00:00+0000 |
这是SQLFiddle演示
总结以上是内存溢出为你收集整理的Oracle SQL:获取带过滤器的第一行全部内容,希望文章能够帮你解决Oracle SQL:获取带过滤器的第一行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)