次のシナリオがあります。
テーブルの従業員:
First Name | Last Name | Department | Salary
-----------|-----------|------------|---------
John | Doe | Finance | 20
John | Doe | R&D | 20
John | null | Finance | 20
John | long | Finance | 20
そして、姓にnullがない限り、(First Name,Last Name)ごとに1行が必要です。次に、(First Name,null)を含む1行だけが必要です。
上記の例の場合、結果は次のようになります。
First Name | Last Name | Department | Salary
-----------|-----------|------------|---------
John | null | Finance | 20
しかし、私がその記録を持っていなかった場合、結果は次のようになるはずです:
First Name | Last Name | Department | Salary
-----------|-----------|------------|---------
John | Doe | R&D | 20
John | long | Finance | 20
答えには Partition By-s が含まれていると思いますが、どこにあるのかわかりません。
今、私はこれに来ました:
SELECT FirstName,LastName, DEPARTMENT,Salary,RK FROM
(
select * from
SELECT EXT.*,
ROW_NUMBER() OVER(PARTITION BY EXT.FirstName,EXT.LastName
ORDER BY rownum ASC) AS RK
FROM Employees EXT
)
WHERE RK = 1 ;
ありがとう !