본문 바로가기

LeetCode

(4)
[LEETCODE] Tree Node : DISTINCT - LEFT JOIN 활용 https://leetcode.com/problems/tree-node/제목 그대로 트리 노드를 테이블로 산출하는 문제.예전에 셀프 조인을 모를 때 비슷한 문제를 처음 접해서 한참 고민하다가 결국 문제풀이를 봤었는데, 이렇게 다시 비슷한 유형을 접하니 신기하다.좀 더 직관적으로 출력물을 확인할 겸 제대로 된 학습을  수 있게 'Child'칼럼을 만들어서 진행했다. [풀이1] LEFT JOIN 및 GROUP BY 활용 SELECT T1.ID ,T2.ID AS CHILD ,CASE WHEN T1.P_ID IS NULL THEN 'Root' WHEN T2.ID IS NULL THEN 'Leaf' EL..
[LEETCODE] [MySQL] Use window function for big data - LEAD(), LAG() 함수 [MySQL] Use window function for big datahttps://leetcode.com/problems/human-traffic-of-stadium/solutions/911779/mysql-use-window-function-for-big-data/  [풀이1]-생각한 조건들:1)추가 칼럼 1: 해당 행의 PEOPLE이 100이 넘고, 이후 3번째 열까지가 100이 넘으면 'O'표시2)추가 칼럼 2: 칼럼 1이 'O'이거나 이전 1, 혹은 이전 2, 이전 3 셋 중 하나가 'O'이면 'O'표시3)칼럼 2가 'O'면 출력할 것 위의 조건에 따라 아래와 같이 코드를 짜서 통과했고, 속도도 상위 2% 정도로 높게 나왔다.하지만 길이가 너무 길다는게 흠이라서 추가로 풀이를 해봤다.SELEC..
[LEETCODE] 262. Trips and Users: WHERE절 활용 https://leetcode.com/problems/trips-and-users/ 어려울 것 전혀 없는 문제였으나, 괜히 어렵게 생각해서 잠시 헤맸던 문제. [정답]SELECT REQUEST_AT AS 'DAY' ,ROUND(COUNT(CASE WHEN STATUS LIKE 'CANCELLED%' THEN ID END)/COUNT(ID), 2) AS 'CANCELLATION RATE'FROM TRIPSWHERE REQUEST_AT BETWEEN '2013-10-01' AND '2013-10-03'AND CLIENT_ID IN (SELECT USERS_ID FROM USERS WHERE BANNED = 'No')AND ..
[LEETCODE] PRODUCT SALES ANALYSIS 3 - WHERE 응용 1070. Product Sales Analysis III 어려운 문제는 아니었으나, 오랜만에 푸는 형식이라 WHERE을 활용하는 것이 생각 안 났어서 기록.아래가 처음 풀었던 방식 SELECT PRODUCT_ID ,YEAR AS FIRST_YEAR ,QUANTITY ,PRICEFROM ( SELECT PRODUCT_ID ,RANK() OVER (PARTITION BY PRODUCT_ID ORDER BY YEAR) AS RNK ,YEAR ,QUA..