[Leetcode] 182. Duplicate Emails (MySQL)

1002 단어 easyleetcodemysqleasy

문제

182. Duplicate Emails

코드

SELECT email
FROM person
group by email
having count(email) > 1

접근

중복된 아이디를 찾는 것이다 보니 아이디 별로 모아서 개수를 확인할 수 있으면 되지 않을까 생각했다. 따라서 group by로 email을 모아서 개수를 count하기 위해 having 절을 사용하였다.

  • GROUP BY와 DISTINCT

    • DISTINCT는 주로 UNIQUE(중복을 제거)한 컬럼이나 레코드를 조회하는 경우 사용한다.
    • GROUP BY는 데이터를 그룹핑해서 그 결과를 가져오는 경우 사용한다.
    • 하지만 두 작업은 조금만 생각해보면 동일한 형태의 작업이라는 것을 쉽게 알 수 있으며, 일부 작업의 경우 DISTINCT로 동시에 GROUP BY로도 처리될 수 있는 쿼리들이 있다.
    • 집계함수를 사용하여 특정 그룹으로 구분 할 때는 GROUP BY 절을 사용하며, 특정 그룹 구분없이 중복된 데이터를 제거할 경우에는 DISTINCT 절을 사용 하도록 하자
  • HAVING 절

    • WHERE 절에서는 집계함수를 사용 할 수 없다.
    • HAVING 절은 집계함수를 가지고 조건을 비교할 때 사용한다.
    • HAVING절은 GROUP BY절과 함께 사용된다.

좋은 웹페이지 즐겨찾기