是这样的 ,因为两表之间是一对多的关系,我在用一个查询条件查询的时候,会查出来多条数据,
但是我想要通过一个字段去重,就是那个字段重复的全部去掉,代码如下:
select distinct myt.task_seq ,
mytr.actual_start_date,mytr.actual_end_date,mytr.status
from
mss_yearend_task myt left join
mss_yearend_task_result mytr
on
(myt.task_seq=mytr.task_seq)
where 1=1
我现在想通过myt.task_seq 这个字段去重,应该如何完成呢?现在这个sql 直接报错了。
ok 这个已经知道了 是
select myt.*,mytr.status from mss_yearend_task myt left join(
Select * from
(
select a.*,row_number() over(order by task_seq) r
from mss_yearend_task_result a
) where r = 1 ) mytr
on myt.task_seq = mytr.task_seq
where 1=1
这样写的
你这样不对,要在over行号时增加partition才行,否则右表中只有一条数据:
select myt.*,mytr.status from mss_yearend_task myt left join(
Select * from
(
select a.*,row_number() over(**partition by task_seq** order by task_seq) r
from mss_yearend_task_result a
) where r = 1 ) mytr
on myt.task_seq = mytr.task_seq
where 1=1