본문 바로가기

SQL47

[SQL문제풀이] - Sub query의 활용 https://leetcode.com/problems/restaurant-growth/solutions/3673106/best-optimum-solution-with-explanation/?envType=study-plan-v2&envId=top-sql-50SELECT visited_on, ( SELECT SUM(amount) FROM customer WHERE visited_on BETWEEN DATE_SUB(c.visited_on, INTERVAL 6 DAY) AND c.visited_on ) AS amount, ROUND( ( SELECT SUM(amount) / 7 FROM custome.. 2025. 4. 13.
[SQL문제풀이-Union의 활용] Friend Requests II https://leetcode.com/problems/friend-requests-ii-who-has-the-most-friends/description/?envType=study-plan-v2&envId=top-sql-50원래 저는 oracle의 subquery 및 CTE를 이용해서 풀었는데, 다른 사람의 솔루션 중에서 곱씹어볼만한 부분이 있어서 체크해보려고 합니다. 보통 우리가 union이나 union all를 사용하는 경우에는 칼럼 정보가 균질적인 녀석들을 대상으로 행만 확장하는 상황을 생각하기 쉬운데요. 사실 실제 테이블의 칼럼정보는 상이하더라도 문제 상황에서 우리가 필요한 부분만 타겟으로 놓고 생각해봤을 때 균질적이라면 union (all)을 활용하는 것도 방법이라고 할 수 있겠습니다.selec.. 2025. 4. 13.
[SQL 기초] Sub-query Scope 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of ContentsSub query에 alias를 가할 수 있는데요, 이 때 이 scope에 대해서 주의해야할 점이 있습니다.   파생 테이블(서브쿼리의 FROM 절에 정의된 별칭)은 해당 쿼리 블록 내에서만 유효합니다.외부 쿼리에서 정의한 별칭을 내부 서브쿼리에서 그대로 사용할 수 없으므로, 내부에서 재참조하면 오류가 발생합니다.서브쿼리는 독립된 쿼리 블록으로 간주되며, 별도로 평가됩니다.  SELECT user_idFROM ( SELECT user_id, COUNT(*) AS cnt FROM MovieRating GROUP BY user_id) tWHERE cnt = (SELECT M.. 2025. 4. 13.
[SQL 기초] Group by와 Window함수의 동시사용 저희가 어떤 그룹화된 집계 결과를 계산하고자 할 때 Group by나 Window함수를 사용하는데요, 그래서 이 두가지 기능이 완벽한 대체재인가? 생각을 할 수도 있을 것 같습니다. 하지만 가끔은 이 두 개를 동시에 사용하는 경우도 존재합니다.https://trillionver2.tistory.com/entry/SQL-%EA%B8%B0%EC%B4%88-%EC%B5%9C%EB%B9%88%EA%B0%92-%EC%B0%BE%EC%95%84%EB%82%B4%EA%B8%B0 [SQL 기초] 최빈값 찾아내기이번 포스팅에서는 특정 칼럼에서 그룹별로 가장 빈번하게 등장한 값(최빈값)을 찾아내는 함수를 알아보겠습니다. 최빈값은 우리가 흔히 계산하는 값이기도 하고 직관적인 개념인데.. SQL로 이trillionver2.t.. 2025. 4. 13.
[SQL문제풀이-Groupby/Subquery] Movie Rating https://leetcode.com/problems/movie-rating/description/?envType=study-plan-v2&envId=top-sql-50제가 시도했던 방법은 아래와 같습니다. 일단 MovieRating table에서 user_id별로 grouping을 시키고 join을 해야한다고 판단했습니다. 그런데 생각해보면 반드시 그럴필요는 없긴합니다. 조인 후에 해도 되는 것이죠.WITH temp AS ( SELECT user_id, COUNT(movie_id) AS cnt FROM MovieRating GROUP BY user_id),temp2 AS ( SELECT movie_id, AVG(rating) AS rate FROM MovieRating .. 2025. 4. 13.
[SQL - Frequently Used Code] Min/Max 집계 함수의 활용 이건 어쩌면 굉장히 당연하고 기초적인 내용이긴 한데 (놀랍게도!) 제가 종종 혼동을 일으키는 부분이라서 역시 정리해보도록 하겠습니다.MIN/MAX.. 등의 집계함수는 Group by나 Window함수 처럼 "집계"를 할 수 있는 녀석들과 같이 사용해야 합니다.예를 들어 아래와 같은 데이터가 있다고 해봅시다.여기서 제가 원하는 것은 A칼럼의 최대값 200을 찾고 이 값으로 A칼럼의 값들을 normalization 한 값이라고 해봅시다. 그런데, 제가 자주 범하는 실수가.. 아래와 같은 쿼리를 작성하는 것 입니다.SELECT tdate, A / MAX(A) AS normalize_A, BFROM table;SQL 표준에 따르면 모든 컬럼이 집계 함수에 포함되어야 하는데, 그렇지 않으면 오류가 발생합니다. M.. 2025. 4. 8.
반응형