다음 결과 집합이 주어집니다.
firstname lastname scheduled posted EventAdded
Student One 2014-04-28 00:00:00.000 2014-04-28 12:02:07.037 NULL
Student One 2014-04-28 00:00:00.000 2014-04-28 12:02:07.037 later
OtherKid Two 2014-04-28 00:00:00.000 2014-04-28 21:09:33.457 NULL
첫 번째 레코드를 제거하려면 어떻게합니까?
학생이 EventAddeds를 많이 가지고 있다면 EventAdded가 null이 아닌 것만을 원합니다. 학생에게 null이 아닌 EventAdded가 많이있는 경우 EventAdded가 null이 아닌 레코드가 필요합니다. 학생에게 하나의 레코드 만있는 경우 (EventAdded가 null 인 것과 관계없이)-우리는 레코드를 원합니다.
우리가 원하는 결과는 다음과 같습니다.
firstname lastname scheduled posted EventAdded
Student One 2014-04-28 00:00:00.000 2014-04-28 12:02:07.037 later
OtherKid Two 2014-04-28 00:00:00.000 2014-04-28 21:09:33.457 NULL
우리는 나열 할 수있는 것보다 더 많은 것을 시도했습니다.
쿼리에 대해이 작업을 수행하려면 row_number()
다음을 사용할 수 있습니다 .
select firstname, lastname, scheduled, posted, eventadded
from (select rs.*,
row_number() over (partition by firstname, lastname
order by (case when eventadded is not null then 1 else 2 end)
) as seqnum
from ResultSet rs
) rs
where seqnum = 1;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다