
안녕하세요
어제 인후염이 심하게 재발해서
병원갔다와서 무호흡 수면하고
오늘자 공부 시작한 강대입니다 ..
다행히 주사 맞고 약 쎈 걸로 받아오고
가습기도 켜주니 한결 나아졌습니다 !!!
벌써 부트캠프 시작한지 한 달이 돼가네요 !!!!!
이게 제일 신기하네요 ㅎㅎ
오늘도 라쓰꼬 💨💨💨💨
ONLINE_SALE 테이블과 OFFLINE_SALE 테이블에서 2022년 3월의 오프라인/온라인 상품 판매 데이터의 판매일, 상품ID, 유저ID, 판매량을 출력해주세요.
OFFLINE_SALE 테이블의 판매 데이터의 USER_ID 값은 NULL 로 표시해주세요.
결과는 판매일을 기준으로 오름차순 정렬해주시고 판매일이 같다면 상품 ID를 기준으로 오름차순, 상품ID까지 같다면 유저 ID를 기준으로 오름차순 정렬해주세요.
두 개의 테이블 속 컬럼은 공통으로
상품 판매 ID, 상품 ID, 판매량, 판매일 이렇게 4개 있지만
온라인 테이블만 회원 ID라는 컬럼이 추가되어 5개의 컬럼으로 구성되어 있습니다
컬럼 먼저 정리를 해볼게요 !!!
<
온라인 상품 판매 정보 - ONLINE_SALE
ONLINE_SALE_ID | USER_ID | PRODUCT_ID | SALES_AMOUNT | SALES_DATE
온라인 상품 판매 ID | 회원 ID | 상품 ID | 판매량 | 판매일
<
오프라인 상품 판매 정보 - OFFLINE_SALE
OFFLINE_SALE_ID | PRODUCT_ID | SALES_AMOUNT | SALES_DATE
오프라인 상품 판매 ID | 상품 ID | 판매량 | 판매일
온라인은 회원 id가 따로 있는 걸 확인할 수 있고
이를 제외하곤 둘이 거의 똑같은 데이터 형태라고 볼 수 있네요 !!
SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
이렇게 출력해달라고 했는데
오프라인 테이블에는 유저 아이디가 없기 때문에 NULL로 출력해줍니다 !
SELECT DATE_FORMAT(O.SALES_DATE, '%Y-%m-%d') AS SALES_DATE,
>> 날짜 형식 편집 / 판매일 조회
O.PRODUCT_ID, >> 상품 ID 조회
IFNULL(O.USER_ID, NULL) AS USER_ID, >> 유저 ID 조회
O.SALES_AMOUNT >> 판매량 조회
FROM
(
SELECT SALES_DATE,
PRODUCT_ID,
USER_ID,
SALES_AMOUNT
FROM ONLINE_SALE >> 테이블 1 불러오기
UNION ALL
SELECT SALES_DATE,
PRODUCT_ID,
NULL, >> 유저 id null값으로 처리
SALES_AMOUNT
FROM OFFLINE_SALE >> 테이블 2 불러오기
) AS O >> 두 개의 테이블 합친 후 별칭 생성
WHERE SALES_DATE LIKE '2022-03%' >> 2022년 3월에만 해당하는 데이터 찾기
ORDER BY 1, 2, 3 >> 판매일 기준, 상품 ID 기준, 유저 ID 기준 정렬
테이블이 2개라 join을 해주는데
그동안 해왔던 left나 inner join이 아닌
union all을 써줬어요 !!!
여러 데이터를 합쳐야할 때 !
중복값이라도 상관없으니 그냥 union이 아닌 union all로 써줬습니다
사실 그동안 코드카타 풀이하는동안
유니온으로 풀 수 있는 게 많았지만 제가 모르쇠하고 다르게 풀었었는데요 ,,,
막상 유니온을 마주치니 별 건 아니네요 ㅋ
라고 한 시간 이상 붙잡음
union 관련 참고한 블로그는
https://silverji.tistory.com/49

이건 제가 맨 처음에 만든 데이터프레임인데요 !

name, age, gender 컬럼을 .columns를 이용해서
제멋대로 바꿔보았습니다 😛
그리고 rename을 이용해서
컬럼 하나의 이름을 다른 이름으로 또 바꿔 보았구요

데이터 프레임 속 .loc를 사용해서
사이즈 라는 컬럼의 값이 4 이상인 경우만 추출하되,
대괄호 속 또 대괄호로 감싸줘서 불러올 컬럼을 사이즈, 팁만 불러오는 것도 가능하네요 !!!!

또한 변수 안에 조건을 담아주고
두 조건을 합친 값도 불러올 수 있답니다 !!!
오늘도 나름 이해해보려고 노력해본 하루였습니다 !!
학습 속도가 더딘 것 같긴 하지만
느리면 느린대로 ,,, 꺾여도 그냥 하는 마음이 중요하죠 뭐 ^~^
내일 쉬고 모레 뵙겠습니다 🤗