TIL 통합/SQL (24) 썸네일형 리스트형 [SOLVESQL] 스테디 셀러 작가 찾기 - DISTINCT와 윈도우함수 https://solvesql.com/problems/find-steadyseller-writers/ https://solvesql.com/problems/find-steadyseller-writers/ solvesql.com 마침 최근 치뤘던 한 코딩 테스트 문제랑 비슷해서 초반엔 쉽게 푸는..줄 알았던 그런 문제.ROW_NUMBER를 기반으로 그룹 번호를 매겨주고서 이를 기반으로 그룹당 카운트가 5가 넘어가는 것만 출력하면 되는데... [풀이] : 주요 포인트들DISTINCT를 활용하여 작가별 연도 중복 제거(초반에 놓친 포인트!!!!) + 서브쿼리 활용: 문제를 처음 풀 때 놓쳤던 내용이자 이 포스트에서 주로 다루고자 하는 내용ROW_NUMBER를 활용해서 작가의 연도별로 열번호 부여부여한 열번호.. [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.. [프로그래머스] 우유와 요거트가 담긴 장바구니(GROUP_CONCAT or HAVING 활용) https://school.programmers.co.kr/learn/courses/30/lessons/62284 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krGROUP_CONCAT으로 쉽게 풀었던 문제.예전에는 UNION으로 좀 더 길게 풀었는데, 장바구니 이력이 여러번 있는 경우가 있으니 DISTINCT든 다른 방식으로든 중복을 제거해 주는 것이 포인트인듯 하다. SELECT CART_IDFROM ( SELECT CART_ID ,GROUP_CONCAT(NAME) NAME .. [프로그래머스] GROUP BY - 입양 시각 구하기(2) https://school.programmers.co.kr/learn/courses/30/lessons/59413 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr어제에 이어 간만에 풀었던 재귀 문제.재귀를 어떻게 하는 것인지 알고만 있으면 크게 어려울 건 없는듯 WITH RECURSIVE TMP AS ( SELECT 0 AS HOUR UNION SELECT HOUR + 1 FROM TMP WHERE HOUR with recursive temp as (select 0 as hourunion .. [프로그래머스] JOIN - 상품을 구매한 회원 비율 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/131534 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 첫 번째 시도.이렇게 할 경우 월별 카운트는 가능하나, 월별 비중을 출력하는 것은 다소 귀찮아 진다. SELECT YEAR(SALES_DATE) ,MONTH(SALES_DATE) ,COUNT(USER_ID) AS PURCHASED_USERSFROM ONLINE_SALEWHERE USER_ID IN ( SEL.. 이전 1 2 3 다음 목록 더보기