Leetcode196. 중복 이메일 삭제

2023 단어 Leetcode

Leetcode196. 중복 이메일 삭제


제목: Person 테이블의 모든 중복된 전자 메일박스를 삭제하기 위해 SQL 조회를 작성합니다. 중복된 메일박스에는 Id의 가장 작은 것만 보존합니다.±—±-----------------+ | Id | Email | ±—±-----------------+ | 1 | [email protected] | | 2 | [email protected] | | 3 | [email protected]|±-±-----------------+Id가 이 표의 메인 키입니다.예를 들어 조회 문구를 실행한 후에 위의 Person 테이블은 다음과 같은 몇 줄로 되돌아가야 합니다. ±-±------------ + | Id | Email | ±---------------- + | 1 |[email protected] | | 2 | [email protected]| ±-±------------------ + 문제: hive 자체 함수 row_number 구현 가능 mysql에 row_number 함수,delete와where 자구를 사용해야 합니다
select Id, Email 
from (
    select Id ,Email, row_number() over (partition by Email order by  Id ) ranking 
    from Person
    ) t 
where ranking =1
DELETE p1 FROM Person p1,
    Person p2
WHERE
    p1.Email = p2.Email AND p1.Id > p2.Id

좋은 웹페이지 즐겨찾기