https://leetcode.com/problems/product-sales-analysis-iii/ WITH tmp AS( SELECT *, rank() OVER(PARTITION BY product_id ORDER BY year) myRank FROM sales)SELECT product_id, year first_year, quantity, priceFROM tmpWHERE myRank=1;RANK() 윈도우 함수를 이용하여 풀이했다.product_id별로, year에 대해 rank를 부여하여 rank=1인 것을 select 하도록 했다.요즘은 윈도우 함수를 활용할 수 있으면 해당 풀이를 선호하는 것 같다... 서브 쿼리보다 간결해서 좋은 것 같다. 서브쿼리 ver.SELECT..
https://leetcode.com/problems/tree-node/ 내 코드# 25년 10월 20일 월요일 21:08# p_id가 null: Root# p_id에 없는 놈들: LeafWITH tb_leaf AS( SELECT id FROM tree WHERE id NOT IN( SELECT p_id FROM tree WHERE p_id IS NOT NULL ))SELECT id, CASE WHEN p_id IS NULL THEN "Root" WHEN id IN (SELECT id FROM tb_leaf) THEN "Leaf" ELSE "Inner" END typeFROM tree;
https://leetcode.com/problems/investments-in-2016/description/ # 25년 10월 7일 화요일WITH tmp AS( SELECT *, COUNT(*) OVER(PARTITION BY tiv_2015) cnt1, COUNT(*) OVER(PARTITION BY lat,lon) cnt2 FROM insurance)SELECT ROUND(SUM(tiv_2016),2) tiv_2016FROM tmpWHERE cnt1>1 and cnt2=1윈도우 함수 사용을 통해 join이나 group by를 사용하지 않고 간단하게 구할 수 있었다.
상품을 구매한 회원 비율 구하기SELECT절 안에 SELECT절 쓰기(스칼라 서브쿼리), JOIN, WITHhttps://school.programmers.co.kr/learn/courses/30/lessons/131534 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr # 9월 11일 목요일# USER_INFO ONLINE_SALE# GENDER 컬럼은 비어있거나 0 또는 1의 값을 가지며 0인 경우 남자를, 1인 경우는 여자를 나타냅니다.# 동일한 날짜, 회원 ID, 상품 ID 조합에 대해서는 하나의 판매 데이터만 존재합니다.# 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수와 상품을 구매한 회원의 ..
상품을 구매한 회원 비율 구하기SELECT절 안에 SELECT절 쓰기(스칼라 서브쿼리), JOIN, WITHhttps://school.programmers.co.kr/learn/courses/30/lessons/131534 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr # 9월 11일 목요일# USER_INFO ONLINE_SALE# GENDER 컬럼은 비어있거나 0 또는 1의 값을 가지며 0인 경우 남자를, 1인 경우는 여자를 나타냅니다.# 동일한 날짜, 회원 ID, 상품 ID 조합에 대해서는 하나의 판매 데이터만 존재합니다.# 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수와 상품을 구매한 회원의 ..