본문 바로가기
728x90

Programming230

[MySQL] 그룹별 누적 합계 구하기 SQL 쿼리를 활용하여 DB에 있는 데이터를 추출하다보면, 그룹별로 누적 합계를 계산해야 할 때가 있습니다. 최근, SQL 관련 업무를 진행하다 앞서 말한 상황이 발생해서 문제를 해결하기 위해 여러 사이트를 참고하여 포스팅을 해보겠습니다. ※ Oracle은 PARTITION BY / ROW_NUMBER OVER() 등 함수를 통하여 이러한 기능을 쉽게 구현할 수 있습니다. 하지만, 낮은 버전의 MySQL에는 이러한 기능이 부족하여 변수 설정을 통해 누적 합계를 구해야 합니다. (최신 버전, 8.0 이상에서는 앞서 말씀드린 함수가 사용 가능하게 업데이트 된 것으로 알고 있습니다.) 개인적으로 공부할SQL 쿼리를 활용하여 DB에 있는 데이터를 추출하다보면, 그룹별로 누적 합계를 계산해야 할 때가 있습니다. .. 2021. 4. 11.
[ R ] 그룹별 누적 합계 구하기 # R을 활용하여 그룹별 누적 합계 구하기 *본 문제는 모 기업 데이터 분석 시험에서 나온 문제를 제 방식대로 변형한 문제입니다. 데이터 설명 [ MEMBER_ORDER ] member_no : 회원번호 group : 그룹명(A/B/C) order_code : 주문번호 order_date : 주문일자 order_pay : 주문금액 * 위의 예시는 필자가 임의의 값으로 넣은 데이터 테이블입니다. 문제. MEMBER_ORDER 테이블에서 각 그룹(group)의 일자별 누적 고객수(cum_buyer_cnt)를 구하는 코드를 작성하라. 이때 2020-07-XX의 누적 고객수란 2020년 7월 1일부터 2020년 7월 xx일까지 기간 동안 한 번 이상 주문한 회원의 수이며, 누적 고객수의 정의에 따라 이미 한 번.. 2021. 4. 6.
[ R ] 코딩테스트 예제 날짜별 누적합 구하기 # R을 활용하여 2개의 데이터 테이블을 병합하고 날짜별 누적합 구하기 *본 문제는 모 기업 코딩테스트 시험에서 나온 문제를 제 방식대로 변형한 문제입니다. 데이터 설명 MEMBER_GROUP : 회원들의 마지막 주문일 데이터 member_no : 회원 아이디 번호 group : A/B/C A : 마지막 주문일이 2020.06 회원 B : 마지막 주문일이 2020. 06 이전 회원 C : 주문 이력이 없는 회원 ORDER : 회원들의 마지막 주문일 데이터 order_code : 주문번호 order_time : 주문시간 order_pay : 주문금액 member_no : 회원번호 문제1. MEMBER_GROUP과 ORDER를 member_no 컬럼을 key로 병합하여 MEMBER_ORDER 객체를 생성하시.. 2021. 3. 31.
[ R ] 그룹별 개체수 묶기 데이터 분석 예제 *본 문제는 그룹별 개체수 묶기를 R을 활용하여 코딩하는 문제이며, 모 기업 코딩테스트 시험에서 나온 문제를 제 방식대로 변형한 문제입니다. 데이터 설명 MEMBER : 회원들의 마지막 주문일 데이터 member_no : 회원 아이디 번호 last_buy_date : 마지막 주문일 (NA는 주문하지 않음을 의미) 문제1. MEMBER 내 회원들의 그룹을 아래 기준에 따라 A/B/C로 구분한 결과를 GROUPS 이름의 객체에 저장하시오. A : 마지막 주문일이 2020년 5월인 회원 B : 마지막 주문일이 2020년 5월 이전인 회원 C : 주문이력이 없는 회원 #1 나의 풀이 in R #라이브러리 다운로드 library(dplyr); library(tidyr); library(lubridate); lib.. 2021. 3. 28.
[MySQL] 날짜별 순서 예제 *본 문제는 모 기업 코딩테스트에서 나온 문제를 제 방식대로 변형한 문제입니다. 문제. orders 테이블 안에 결제완료인 주문에 한해서 해당 멤버(member_id)의 몇 번째 주문(order_sequence)를 나타내는 쿼리를 작성하시오. *최종결과에는 member_id, order_time, order_sequence만 나타내시오. orders 스키마 * 해당 테이블은 임의로 값을 넣은 예시입니다. 스키마 작성 코드 * 해당 values는 연습용으로 만든 값입니다. CREATE TABLE orders (`order_code` int, `order_time` datetime, `pay_money` int, `pay_yn` varchar(1), `member_id` int) ; INSERT INTO o.. 2020. 11. 11.
[MySQL] 코딩테스트 연습 예제 2 *본 문제는 모 기업 코딩테스트에서 나온 문제를 제 방식대로 변형한 문제입니다. 문제. 주어진 테이블을 바탕으로 members 내 회원(member_id) 중 회사의 직원이 아닌 회원에 대해 1. 첫 구매 시간(first_time) 2. 마지막 구매 시간(last_time) 3. 총 결제액(sum_pay) 4. 주문수(order_cnt) 를 구하는 쿼리를 작성하시오. (단, 해당 칼럼은 모두 결제완료인 주문에 한해서 계산되어야 함. 또한, 쿼리를 실행하여 얻게 된 데이터는 반드시 주어진 테이블에 있는 데이터이어야 함.) * 주어진 테이블 모두 임의로 넣은 값입니다. members 스키마 orders 스키마 스키마 작성 코드 * 해당 values는 연습용으로 만든 값입니다. CREATE TABLE memb.. 2020. 11. 7.
728x90