SQL 썸네일형 리스트형 [SQL] 커서(Cursor) 개념과 사용법 커서(Cursor)란?SQL 쿼리 결과를 프로그램(stored procedure) 내부에서 한 행씩 반복 처리할 수 있게 해주는 포인터(pointer)대량 데이터에 대해 셋 기반 연산(UPDATE ... WHERE 등) 으로 처리하기 어려운 복잡한 비즈니스 로직을 구현할 때 사용하지만, 행 단위 처리이므로 대량 데이터에는 부하가 크다. 그러므로 셋 기반 처리나 배치(batch) 처리를 먼저 검토해야 할 필요가 있다.MySQL에서는 커서 선언 후 반드시 CONTINUE HANDLER를 함께 선언하여 "더 이상 읽을 행이 없을 때" 상태를 처리해야 함커서 사용 절차 (MySQL)변수 선언 (DECLARE 변수명 타입)커서 선언 (DECLARE 커서명 CURSOR FOR SELECT ... )핸들러 선언 (D.. 더보기 [SQL] SQL을 활용한 이커머스 고객 세분화 분석 (RFM 분석) 2025.02.09 - [Python] - [Python] 이커머스 고객 세분화 분석 (RFM, 코호트 분석) [Python] 이커머스 고객 세분화 분석 (RFM, 코호트 분석)RFM 분석고객의 구매 행동을 기반으로 충성도 높은 고객을 식별하고 마케팅 전략을 최적화하는 데 사용되는 데이터 분석 기법 RFM 분석의 세 가지 요소Recency (최신성): 고객이 마지막으로 구매한choiwonjin.tistory.com이전 포스팅에서 파이썬을 이용하여 RFM 분석을 하여 고객 세그맨테이션을 진행했었다.이번 포스팅은 같은 데이터로 SQL을 이용하여 RFM 분석을 통해 고객 세그맨테이션을 진행해보겠다.RFM 분석고객의 구매 행동을 기반으로 충성도 높은 고객을 식별하고 마케팅 전략을 최적화하는 데 사용되는 데이터 .. 더보기 [MYSQL] IN 구문에 NULL이 포함될 때 주의 사항 https://school.programmers.co.kr/learn/courses/30/lessons/273712 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr IN 사용SELECT ITEM_ID , ITEM_NAME , RARITYFROM ITEM_INFO NATURAL JOIN ITEM_TREE WHERE ITEM_ID NOT IN (SELECT PARENT_ITEM_ID FROM ITEM_TREE)ORDER BY ITEM_ID DES NULL 값은 정해지지 않은 불확실한 값이기 때문에 IN 구문으로의.. 더보기 [MYSQL] INTERSECT (교집합) https://school.programmers.co.kr/learn/courses/30/lessons/62284 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr INTERSECT 사용 쿼리SELECT CART_IDFROM CART_PRODUCTS WHERE NAME = 'Milk'INTERSECTSELECT CART_IDFROM CART_PRODUCTSWHERE NAME = 'Yogurt'ORDER BY CART_ID Milk와 Yogurt를 각각 선택하고 있는 두 쿼리의 교집합을 구한다. GROUP BY, HAVING 사용 쿼리SELECT CART_IDF.. 더보기 [MYSQL] MAX 주의사항 https://school.programmers.co.kr/learn/courses/30/lessons/131116 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr MAX(A) 함수는 한 행을 통째로 묶지 않고, A칼럼의 최대값만 추출한다. 1번 쿼리SELECT CATEGORY , MAX(PRICE) AS MAX_PRICE , PRODUCT_NAMEFROM FOOD_PRODUCT WHERE CATEGORY IN ('과자', '국', '김치', '식용유')GROUP BY CATEGORYORDER BY MAX_PRICE DESC 그렇기 때문에 1번 .. 더보기 [MYSQL] UNION, DATE_FORMAT https://school.programmers.co.kr/learn/courses/30/lessons/131537 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr (SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE , PRODUCT_ID , USER_ID , SALES_AMOUNTFROM ONLINE_SALEWHERE SALES_DATE LIKE '2022-03%')UNION(SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE ,.. 더보기 [MYSQL] WITH, JOIN, CASE, 집계 함수 https://school.programmers.co.kr/learn/courses/30/lessons/284528 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr WITH AVG_GRADE AS (SELECT EMP_NO , AVG(SCORE) AS AVG_SCOREFROM HR_GRADEGROUP BY EMP_NO)SELECT EMP_NO , EMP_NAME , CASE WHEN G.AVG_SCORE >= 96 THEN 'S' WHEN G.AVG_SCORE >= 90 THEN 'A' .. 더보기 [MYSQL] 3개의 테이블 JOIN https://school.programmers.co.kr/learn/courses/30/lessons/144856 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr SELECT AUTHOR_ID , AUTHOR_NAME , CATEGORY , SUM(B.PRICE * BS.SALES) AS TOTAL_SALESFROM BOOK AS B NATURAL JOIN AUTHOR AS A NATURAL JOIN BOOK_SALES AS BSWHERE BS.SALES_DATE BETWEEN '20220101' AND '20220131'.. 더보기 이전 1 2 3 4 다음 목록 더보기