group by3 [LeetCode] Reformat Department Table (sum, case, when, then) SELECT id , SUM(CASE WHEN month = "Jan" THEN revenue END) AS Jan_Revenue , SUM(CASE WHEN month = "Feb" THEN revenue END) AS Feb_Revenue , SUM(CASE WHEN month = "Mar" THEN revenue END) AS Mar_Revenue , SUM(CASE WHEN month = "Apr" THEN revenue END) AS Apr_Revenue , SUM(CASE WHEN month = "May" THEN revenue END) AS May_Revenue , SUM(CASE WHEN month = "Jun" THEN revenue END) AS Jun_Revenue , SUM(CASE.. 2021. 4. 9. [LeetCode] Classes More Than 5 Students (group by, having, count, distinct) SELECT class FROM courses GROUP BY class HAVING COUNT(DISTINCT student) > 4; class 로 group by 한후 class 당 unique한 (distinct) student를 count한 결과가 4보다 큰 class 만 select 2021. 4. 9. [LeetCode] Delete Duplicate Emails (delete, self join, and) Delete 문을 사용해서 테이블에서 행 제거 DELETE p FROM Person p INNER JOIN Person p2 ON p.Email = p2.Email AND p.Id > p2.Id; 궁금증이 생기는데 on 절에 조건을 줄 경우 어떤식으로 영향이 미치는가 위의 코드에서는 and라는 조건이 추가된 것이다. [ON vs WHERE] ON : JOIN 을 하기 전 필터링을 한다 (=ON 조건으로 필터링이 된 레코들간 JOIN이 이뤄진다) WHERE : JOIN 을 한 후 필터링을 한다 (=JOIN을 한 결과에서 WHERE 조건절로 필터링이 이뤄진다) 출처: developyo.tistory.com/121 다른 풀이 With cte as (select min(Id) as Id, Email from P.. 2021. 4. 9. 이전 1 다음