티스토리

Dr.trillion
검색하기

블로그 홈

Dr.trillion

trillionver2.tistory.com/m

이것저것 저장

구독자
4
방명록 방문하기
공지 Table of Contents 모두보기

주요 글 목록

  • [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.. 공감수 0 댓글수 0 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.. 공감수 0 댓글수 0 2025. 4. 13.
  • [SQL 기초] CTE와 Sub-query의 차이 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of ContentsCTE는 쿼리 전체에서 재사용이 가능하며, 서브쿼리 내부에서도 참조할 수 있습니다.select user_id from (select user_id, count(movie_id) cnt from MovieRating group by user_id) twhere cnt = (select max(t.cnt) from t); 는 작동하지 않지만 with temp as (select user_id, count(movie_id) cnt from MovieRating group by user_id)select user_id from temp where.. 공감수 0 댓글수 0 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) 안에서 사용할 수 있는 열은.. 공감수 0 댓글수 0 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.. 공감수 0 댓글수 0 2025. 4. 13.
  • [SQL문제풀이-Union활용] Count Salary Categories 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contentshttps://leetcode.com/problems/count-salary-categories/solutions/4784326/easy-and-all-in-1-code-mysql-ms-sql-server-oracle-postgresql/?envType=study-plan-v2&envId=top-sql-50 항상 열을 기준으로 연산을 하는 데 익숙해져 있었더니 행 단위로 조작을 가해줘야 하는 상황에서 (어렵지 않은 문제임에도) 버벅이는 경우였습니다. with temp as (select account_id, case when income50000 then 'High Salary'.. 공감수 0 댓글수 0 2025. 4. 9.
  • [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.. 공감수 0 댓글수 0 2025. 4. 8.
  • [SQL 기초] order 기준 열의 Null 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents오늘 작업하다가 order 기준 열에 Null이 있는 경우를 마주쳤는데, 정렬을 한다면 정렬이 될 것인지 헷갈리더군요. 간단히 정리해두도록 하겠습니다. Oracle:ASC → NULL 값은 마지막DESC → NULL 값은 첫 번째NULLS FIRST / NULLS LAST 옵션 사용 가능-- 오름차순 정렬 시 기본: NULL 값은 마지막SELECT * FROM table_name ORDER BY A ASC;-- 오름차순 정렬 시 NULL 값을 맨 앞에 배치SELECT * FROM table_name ORDER BY A ASC NULLS FIRST;-- 내림차순 정렬 시 기본: NULL .. 공감수 0 댓글수 0 2025. 4. 8.
  • [SQL - Frequently Used Code] partition by / order by 없이 window함수 쓰기 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contentshttps://leetcode.com/problems/consecutive-numbers/?envType=study-plan-v2&envId=top-sql-50 window함수의 partition by와 order by는 필수로 넣어야 하는 옵션은 아닙니다. 가끔은 둘 다 필요 없을 때가 있죠. 이럴 때는 over() 만 해주면 됩니다. select distinct(num) ConsecutiveNumsfrom (select id, num, lag(num, 1) over() l1, lag(num, 2) over() l2 from Logs) ttwhere num=l1 and n.. 공감수 0 댓글수 0 2025. 4. 7.
  • [SQL문제풀이 - Having 절 조건주기] - Customers Who Bought All Products 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contentshttps://leetcode.com/problems/customers-who-bought-all-products/?envType=study-plan-v2&envId=top-sql-50 사실 쓰고 보면 크게 어려운 문제는 아닌데 having 절의 조건을 주는 것과 관련해서 한번 체크해보기 좋은 것 같습니다.  select customer_idfrom Customergroup by customer_idhaving count(distinct product_key)=(select count(product_key) from product);  2024.11.03 - [프로그래밍/SQL, Hiv.. 공감수 0 댓글수 0 2025. 4. 7.
  • [SQL 기초] Join의 on 조건과 where 조건 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents이번 포스팅에서는 on조건(join을 위한 조건)과 where조건(필터링 조건)이 어떻게 다른 결과를 가져다주는지 한 번 체크해보겠습니다.  예를 들어서 Employees 테이블은 아래와 같고 Departments 테이블은 아래와 같다고 해봅시다. 그런데 여기서 모든 직원을 조회하되, 부서 정보가 있는 경우에는 부서가 활성 상태(active_flag = 1)인 경우에만 부서 정보를 보여주고 싶다고 가정해봅니다. 1) On 절에 조건을 포함하는 경우SELECT e.id, e.name, d.dept_nameFROM Employees eLEFT JOIN Departments d ON e.d.. 공감수 0 댓글수 0 2025. 4. 5.
  • [SQL 기초] 날짜 덧셈/뺄셈 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents1. 특정 날짜에 대한 일정량의 덧셈/뺄셈Oracle에서는 날짜형식의 데이터에 +1, -2와 같은 작업을 하면 알아서 날짜로 변환하여 연산결과를 반환해줍니다. 예를 들어, '2001-03-02'에 1을 더하면 자동으로 '2001-03-03'으로 계산됩니다. 반면, MySQL에서는 날짜형에 직접 숫자를 더하는 방식은 지원되지 않습니다. MySQL에서 날짜 연산을 하려면 DATE_ADD() 함수나 ADDDATE() 함수를 사용해야 합니다. 아래의 쿼리는 '2001-03-03'를 반환합니다. SELECT DATE_ADD('2001-03-02', INTERVAL 1 DAY) AS next_da.. 공감수 0 댓글수 0 2025. 3. 23.
  • [SQL기초] Oracle/MySQL의 대표적인 용법 차이 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents오늘은 간단하게 Oracle과 MySQL의 대표적인 용법 차이에 대해 짚어보고 가겠습니다. 1. Null 관련함수Null일 경우 대체값 반환하기SELECT NVL(salary, 0) FROM employees;--ORACLE SELECT IFNULL(salary, 0) FROM employees;--MySQL 여러 개의 값을 검사하며 첫 번째 Null이 아닌 값을 반환 (공통)SELECT COALESCE(salary, bonus, 0) FROM employees; 두 값이 같으면 Null반환, 다르면 첫 번째 값을 반환 (공통)SELECT NULLIF(salary, bonus) FROM.. 공감수 0 댓글수 0 2025. 3. 22.
  • [SQL기초] 형 변환 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents1. Oracle에서의 형식 변환(1) Oracle의 날짜형 변환Oracle에서는 To_date/To_char와 같은 함수를 이용해서 형 변환을 수행합니다. select TO_DATE('20211212', 'YYYYMMDD') FROM dual;select TO_CHAR(SYSDATE, 'YYYY-MM-DD') from dual (2) Oracle의 숫자형 변환SELECT emp_id, TO_NUMBER(salary) * 1.1 AS increased_salaryFROM employees; (3) Oracle의 문자형 변환SELECT TO_CHAR(12345.678) FROM dual;.. 공감수 0 댓글수 0 2025. 3. 22.
  • [SQL 기초] Self 조인 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents셀프 조인(Self Join)은 어떤 테이블을 자기 자신과 조인하는 방법입니다. 테이블 내에서 행 간의 관계를 분석하거나 비교할 때 유용하게 사용할 수 있습니다. 셀프 조인을 사용하는 대표적인 예를 한 번 살펴보겠습니다.  1. Hierarchical Data : 예를 들어서 테이블이 하나 있는데 여기에 Employee와 Manager가 모두 한꺼번에 들어있다고 해보겠습니다. 여기서 employer와 그 manager 관계를 조회하고 싶을 때 Self Join을 활용하면 됩니다. SELECT e.id, e.first_name, e.last_name, e.salary.. 공감수 0 댓글수 0 2025. 3. 17.
  • [SQL문제풀이] - 명시적 Group이 없을 때 Grouping (2) 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contentshttps://leetcode.com/problems/human-traffic-of-stadium/description/ 이 문제의 어려운 포인트는 그룹화를 하긴 해야하는데.. 동일한 값이 있는 것으로 그룹화를 하는 것이 아니라 "연속"조건으로 그룹화를 시키는 것입니다. 이전에 유사한 문제가 있었던 것 같습니다. 2025.01.19 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL 문제풀이] - 명시적 Group이 없을 때 Grouping (1) WITH FilteredStadium AS ( SELECT id, TO_CHAR(visit_date, '.. 공감수 0 댓글수 0 2025. 3. 14.
  • [SQL 기초] To_date (Oracle) 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of ContentsDate type의 데이터를 문자열로 만드려면 To_char를 사용해야 했는데, 문자열 형태의 데이터를 Date type으로 바꾸려면 어떻게 해야할까요? To_date를 이용하면 됩니다.  1. SyntaxTO_DATE(char, format, nls_language) 2. 활용예시SELECT * FROM orders WHERE order_date >= TO_DATE('2024-01-01', 'YYYY-MM-DD'); 공감수 0 댓글수 0 2025. 3. 13.
  • [SQL문제풀이] Join Key의 처리 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents프로그래머스: 자동차 대여 기록 별 대여 금액 구하기https://school.programmers.co.kr/learn/courses/30/lessons/151141 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 디테일한 부분에서 꽤나 까다로운 문제입니다. 일단 할인이 되지않는 경우에는 할인테이블에 정보가 없기 때문에 이것을 처리해주어야 하고(NVL로 처리할 수 있죠) join의 조건에 2개가 걸리는데 조건의 raw 상태에서 바로 조건을 걸 수가 없습니다.  여기서 실수하기 쉬운 포.. 공감수 0 댓글수 0 2025. 3. 9.
  • [SQL 기초] 날짜형식 연/월/일 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents날짜요소 추출(1) 공통방법: Extract함수를 활용하면 됩니다. SELECT EXTRACT(YEAR FROM date_column) AS year, EXTRACT(MONTH FROM date_column) AS month, EXTRACT(DAY FROM date_column) AS dayFROM your_table;(SELECT title AS resultsFROM MovieRating JOIN Movies USING(movie_id)WHERE EXTRACT(YEAR_MONTH FROM created_at) = 202002GROUP BY titleORDER BY AVG(rat.. 공감수 0 댓글수 0 2025. 2. 26.
  • [SQL] Table of Contents 2025.03.08 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL문제풀이] Coding test 문제풀이 전략2025.03.22 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL기초] Oracle/MySQL의 대표적인 용법 차이연산2024.10.31 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL 기초] Query 작성/실행 순서2024.10.31 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL 기초] SQL 연산자 우선순위2025.03.22 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL기초] 형 변환2025.01.18 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL 기초] Greate.. 공감수 0 댓글수 0 2025. 2. 24.
  • [SQL 기초] 최빈값 찾아내기 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents이번 포스팅에서는 특정 칼럼에서 그룹별로 가장 빈번하게 등장한 값(최빈값)을 찾아내는 함수를 알아보겠습니다. 최빈값은 우리가 흔히 계산하는 값이기도 하고 직관적인 개념인데.. SQL로 이를 구현하려면 생각보다는 까다로운 편인 것 같습니다. 일단 가장 간단한 집계함수로 찾아내는 것을 알아보겠습니다. 안타깝게도 이 집계함수는 Oracle에서만 사용이 가능합니다.  1. STATS_MODE 함수 활용하기아래와 같은 데이터가 주어졌다고 해보겠습니다.   ID CATEGORY 1 A 1 B .. 공감수 0 댓글수 0 2025. 1. 30.
  • [SQL 기초] 집계함수의 특성을 활용한 조건 별 집계 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents집계함수의 특성은 지난 포스팅에서 살펴본 바 있습니다. 2025.01.19 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL 기초] 집계 함수의 적용 집계함수(column_name)은 NULL 갑을 제외한 레코드에 대해서 집계를 진행한다고 말씀드렸었는데요. 이 특성을 이용해서 Table에서 where절을 쓰지않고 바로 집계함수를 적용할 수 있는 경우도 있습니다. SELECT MAX(CASE WHEN 조건 THEN 값 END) AS 별칭, MIN(CASE WHEN 조건 THEN 값 END) AS 별칭, AVG(CASE WHEN 조건 THEN 값 END) .. 공감수 0 댓글수 2 2025. 1. 27.
  • [SQL 문제풀이] - 명시적 Group이 없을 때 Grouping (1) 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contentshttps://www.hackerrank.com/challenges/sql-projects/problem?isFullScreen=true SQL Project Planning | HackerRankWrite a query to output the start and end dates of projects listed by the number of days it took to complete the project in ascending order.www.hackerrank.com  이 문제는 딱 봤을 때 먼저 paritioning 혹은 grouping 을 해야한다는 것을 알겠는데, 그것을 .. 공감수 0 댓글수 0 2025. 1. 19.
  • [SQL 기초] 집계 함수의 적용 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents집계함수는 말 그대로 집계하는 함수입니다. COUNT, MIN, MAX.. 등이 있지요. 간단한 함수이지만 디테일한 부분에서 놓칠수도 있는 부분을 간단히만 정리하겠습니다.  주의 1) Group By 여부Count함수는 Group by와 같이 사용할 수도 있고(각 그룹별 Record수 계산), 단독으로 사용할 수도 있습니다(테이블 전체에서 Record수 계산). 다만, COUNT를 단독으로 사용하는데, SELECT 절에 다른 컬럼을 포함하면 에러가 발생합니다.GROUP BY를 사용해 해당 컬럼으로 그룹화해야 합니다.-- 에러 발생SELECT company_code, COUNT(*) FR.. 공감수 0 댓글수 1 2025. 1. 19.
  • [SQL 문제풀이] - 다중 join + group by의 적용 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contentshttps://www.hackerrank.com/challenges/the-company/problem?isFullScreen=true New Companies | HackerRankFind total number of employees.www.hackerrank.com 오답노트)너무 오랜만에 SQL의 중급기술을 써야하는 상황이 되다보니... 처음 풀었을 때는 with절로 manager table들을 각각 group by 해서 count하고 join을 하려고 시도했습니다. 이 때 distinct() - 중복이 있을 수 있다는 점을 간과했으며, join 시에도 다중 join을 한번에 하는.. 공감수 0 댓글수 0 2025. 1. 19.
  • [SQL 기초] CASE WHEN 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of ContentsSQL에서 조건문을 사용하는 가장 기본적인 방식인 CASE WHEN에 대해서 알아보도록 하겠습니다. 기본적인 Syntax는 아래와 같습니다. (저는 가끔.. ELSE 다음에 then을 붙이는 실수, 그리고 END를 빼먹는 실수를 하곤 합니다..)CASE 표현식 WHEN 값1 THEN 결과1 WHEN 값2 THEN 결과2 ... ELSE 결과NEND  주의) 조건을 적용할 때, 만일 조건이 중복되면 어떻게 될까요? 조건이 하나라도 참이면, 그에 해당하는 값을 반환하고 이후 조건은 무시됩니다.SELECT Name, Salary, CASE .. 공감수 1 댓글수 1 2025. 1. 19.
  • [SQL 기초] KEEP함수 (Oracle) 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents저번 포스팅에서 말씀드린대로 KEEP은 특정 칼럼을 기준으로 정렬해서 최대/최소값을 갖는 행을 찾고, 찾아낸 행 안에 있는 다른 칼럼의 값을 활용하고자 할 때 사용합니다. Oracle에서만 사용할 수 있습니다. 다른 DBMS에서는 타 윈도우함수와 서브쿼리의 조합으로 작업을 수행해야 합니다. https://trillionver2.tistory.com/entry/Frequently-Used-Code-그룹별로-첫번째마지막-값-추출 오늘은 몇 가지 예시를 통해서 실제로 어떻게 사용하는지 살펴보도록 하겠습니다.  Employ 테이블이 아래와 같이 있다고 하겠습니다.   1. Group by와 함.. 공감수 3 댓글수 0 2025. 1. 19.
  • [SQL - Frequently Used Code] In-절에서 NULL 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of ContentsIn/혹은 Not in으로 특정 집합의 값 중의 하나인지 검사하는 경우가 종종 있습니다. 그런데 여기에 NULL이 포함된 경우에 에러가 발생할 수 있습니다. 이 부분을 주의해야 합니다.  예를 들어, 아래의 문제에서https://www.hackerrank.com/challenges/binary-search-tree-1/problem?isFullScreen=true Binary Tree Nodes | HackerRankWrite a query to find the node type of BST ordered by the value of the node.www.hackerrank.comP .. 공감수 0 댓글수 0 2025. 1. 18.
  • [SQL 기초] Greatest/Least 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of ContentsGREATEST와 LEAST는 한 행에서 주어진 여러 값(열 값)을 비교하여 가장 큰 값 또는 가장 작은 값을 반환합니다.Max/Min과는 칼럼 간 비교라는 점에서 차이가 있습니다. SELECT Name, GREATEST(Salary, Bonus, Commission) AS Max_Value, LEAST(Salary, Bonus, Commission) AS Min_ValueFROM EMPLOYEES; 공감수 1 댓글수 0 2025. 1. 18.
  • [SQL 기초] SUBSTR함수 2025.02.24 - [프로그래밍/SQL, Hive, SAS 관련 정보] - [SQL] Table of Contents이번에는 문자열에서 일부만을 추출해오는 명령어 SUBSTR입니다. 예시를 보면 쉽게 이해할 수 있습니다.  SELECT SUBSTR('Hello World', 7, 5) AS sub_string;-- 결과: 'World'7: 시작위치5: 추출할 문자 수SELECT SUBSTR('Hello World', -5, 3) AS sub_string;-- 결과: 'Wor'-5: 시작위치(뒤에서 5번째)3: 추출할 문자 수 공감수 0 댓글수 0 2025. 1. 18.
    728x90
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.