有下面表TEST_MAO
表数据如下:
业务名称 更新日期 预定开始执行日 预定结束执行日
打印 20090501 20090516 20090518
打印 20090601 20090615 20090618
打印 20090601 20090616 20090618
装订 20090602 20090618 20090619
装订 20090602 20090618 20090620
出仓 20090605 20090620 20090625逻辑是:相同 业务名称 的数据,其最新 更新日期 对应的第一条记录被抽出。
按照上述逻辑,抽出数据如下:
业务名称 更新日期 预定开始执行日 预定结束执行日
打印 20090601 20090615 20090618(或者20090616 20090618)
装订 20090602 20090618 20090619(或者20090618 20090620)
出仓 20090605 20090620 20090625
急等,在线交流
表数据如下:
业务名称 更新日期 预定开始执行日 预定结束执行日
打印 20090501 20090516 20090518
打印 20090601 20090615 20090618
打印 20090601 20090616 20090618
装订 20090602 20090618 20090619
装订 20090602 20090618 20090620
出仓 20090605 20090620 20090625逻辑是:相同 业务名称 的数据,其最新 更新日期 对应的第一条记录被抽出。
按照上述逻辑,抽出数据如下:
业务名称 更新日期 预定开始执行日 预定结束执行日
打印 20090601 20090615 20090618(或者20090616 20090618)
装订 20090602 20090618 20090619(或者20090618 20090620)
出仓 20090605 20090620 20090625
急等,在线交流
from (select 业务名称 , 更新日期 ,预定开始执行日 , 预定结束执行日 , row_number() over(partition by 业务名称 order by 更新日期 ) rn
from test_mao ) t
where rn=1
SELECT d.name,d.vv_date,MAX(d.vv_begin_time),MAX(d.vv_end_time) FROM temp d
WHERE (d.name,d.vv_date) IN
(SELECT t.name,
MAX(t.vv_date)
FROM temp t
GROUP BY t.name)
GROUP BY d.name,
d.vv_date1 出仓 20090605 20090620 20090625
2 打印 20090601 20090616 20090618
3 装订 20090602 20090618 20090620