oracle 有一张表A,表中有 a,b,c,d,字段,b字段为日期型,c和其他字段为字符型,在A表中a b c d 1 4 10 cc 0 5 10 ee2 6 11 dd 2 7 12 dd3 8 12 cd 因为A表中存在c字段有相同值,而b字段值不同,但是我想取出以b字段最大的日期c字段唯一的一条记录比如说前两行记录,c 字段相同,而b字段不同,判断b字段中的最大的那一行记录!如果c字段是唯一的,那么就直接出去来。则取出的结果如下:a b c d 0 5 10 ee2 6 11 dd 3 8 12 cd
请问用那种方法才可以做到!希望能提供例子!
我是菜鸟请多多指教!
请问用那种方法才可以做到!希望能提供例子!
我是菜鸟请多多指教!
where not exists(select null from a t2 where t1.c=t2.c and t1.b<t2.b)对b,c字段建一个组合索引,顺序是(c,b)或者用
select max(a) keep(dense_rank last order by b)a,
max(b) b,
c,
max(d)keep(dense_rank last order by b) d
from a
group by c;
同样建上面的组合索引
比较一下执行计划,选择表现较好的那个
max(b) b,
c,
max(d)keep(dense_rank last order by b) d
from a
group by c;
这个有用