본문 바로가기

SQL46

[SQL문제풀이] - Sub query의 활용 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contentshttps://leetcode.com/problems/restaurant-growth/solutions/3673106/best-optimum-solution-with-explanation/?envType=study-plan-v2&envId=top-sql-50 SELECT 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.. 2025. 4. 13.
[SQL문제풀이-Union의 활용] Friend Requests II 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contentshttps://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를 사용하는 경우에는 칼럼 정보가 균질적인 녀석들을 대상으로 행만 확장하는 상황을 생각하기 쉬운데요. 사실 실제 테이블의 칼럼정보는 상이하더라도 문제 상황에서 우리가 필요한 부.. 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함수의 동시사용 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents저희가 어떤 그룹화된 집계 결과를 계산하고자 할 때 Group by나 Window함수를 사용하는데요, 그래서 이 두가지 기능이 완벽한 대체재인가? 생각을 할 수도 있을 것 같습니다. 하지만 가끔은 이 두 개를 동시에 사용하는 경우도 존재합니다.2025.01.30 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL 기초] 최빈값 찾아내기 대신 이렇게 사용할 때는 데이터의 흐름과 결과에 대한 명확한 이해를 바탕으로 사용하셔야 합니다.   쿼리 실행의 순서:GROUP BY는 먼저 실행되어 행을 그룹화하고 집계합니다.OVER(PARTITION BY) 안에서 사용할 수 있는 열은.. 2025. 4. 13.
[SQL문제풀이-Groupby/Subquery] Movie Rating 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contentshttps://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.. 2025. 4. 13.
[SQL - Frequently Used Code] Min/Max 집계 함수의 활용 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents이건 어쩌면 굉장히 당연하고 기초적인 내용이긴 한데 (놀랍게도!) 제가 종종 혼동을 일으키는 부분이라서 역시 정리해보도록 하겠습니다. MIN/MAX.. 등의 집계함수는 Group by나 Window함수 처럼 "집계"를 할 수 있는 녀석들과 같이 사용해야 합니다.  예를 들어 아래와 같은 데이터가 있다고 해봅시다.  여기서 제가 원하는 것은 A칼럼의 최대값 200을 찾고 이 값으로 A칼럼의 값들을 normalization 한 값이라고 해봅시다. 그런데, 제가 자주 범하는 실수가.. 아래와 같은 쿼리를 작성하는 것 입니다. SELECT tdate, A / MAX(A) AS normalize.. 2025. 4. 8.