高分100求SQL语句[急急]

大山里的松 2006-05-26 04:55:29
高分100求SQL语句[急急]

现有如下表:

AAA BBB CCC DDD
-----------------
001 abc kkk NULL
001 abc abc 001
001 abc acd 002
002 vvv ddd NULL
003 rrr qqq NULL
003 cde fgh 002

AAA BBB CCC DDD 全为字符类型 其中 AAA+DDD为主码

现在要求 得到下面的结果

AAA BBB CCC DDD
-----------------
001 abc acd 002
002 vvv ddd NULL
003 cde fgh 002

即 获得 AAA列不重复 且 DDD列为最大的 记录集合
ps:不使用存储过程 和 编程的方式,仅用SQL语句来完成

是否可行

谢谢大家了~~
周末愉快~~



...全文
120 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
大山里的松 2006-05-26
  • 打赏
  • 举报
回复
这么说可能不是很确切,实际应用中ddd表示时间

我要获得的结果是

对于每一个aaa返回它最后的记录情况

skytears 2006-05-26
  • 打赏
  • 举报
回复
AAA+DDD为主键,为什么有空值?
waterfirer 2006-05-26
  • 打赏
  • 举报
回复
select aaa,bbb,ccc,ddd from (select aaa,bbb,ccc,ddd,row_number() over(partition by aaa order by nvl(ddd,'000') desc) r from table) where r=1
大山里的松 2006-05-26
  • 打赏
  • 举报
回复
再说明一下
获得 AAA列不重复 且 DDD列为最大的 记录集合

DDD列最大指的是在AAA列相同的情况下 DDD最大
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧