[오늘 할 일]
1. 팀 규칙 정하기
2. 팀 프로젝트 준비
3. SQL 코드 카타 5문제
4. SQLD 자격증 대비반 15주차&16주차 수강
[내용 정리]
1.
- 외부조인
SELECT B.ANIMAL_ID, B.NAME
FROM ANIMAL_INS A RIGHT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.ANIMAL_ID IS NULL
ORDER BY B.ANIMAL_ID
-- 다른 방법(EXIST 활용)
WHERE NOT EXISTS (SELECT 1 FROM ANIMAL_INS WHERE ANIMAL_ID = A.ANIMAL_ID)
-- 서브쿼리 활용
SELECT USER_ID, PRODUCT_ID
FROM (SELECT USER_ID, PRODUCT_ID, COUNT(*) AS RE
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID)
WHERE RE > 1
ORDER BY USER_ID ASC, PRODUCT_ID DESC
-- 윈도우함수 이용
SELECT USERID, PRODUCTID, COUNT(*) OVER(PARTITION BY USERID, PRODUCTID) CNT
FROM ONLINE_SALE
ORDER BY CNT DESC
-- HAVING 사용 (간단)
SELECT USER_ID, PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(*) > 1
ORDER BY USER_ID ASC, PRODUCT_ID DESC;
--
FETCH FIRST 1 ROWS ONLY
* 참고 : ORDER BY와 LIMIT를 사용할 시 자료 전체를 조회하고 그 중 하나를 골라내기 때문에 큰 테이블에서는 성능 저하를 일으키게 된답니다.
--
SELECT USER_ID,
NICKNAME,
CITY||' '||STREET_ADDRESS1||' '||STREET_ADDRESS2 AS 전체주소,
SUBSTR(TLNO,1,3)||'-'||SUBSTR(TLNO,4,4)||'-'||SUBSTR(TLNO,8) AS 전화번호
FROM USED_GOODS_USER
WHERE USER_ID IN (SELECT WRITER_ID
FROM USED_GOODS_BOARD
GROUP BY WRITER_ID
HAVING COUNT(*) >= 3)
ORDER BY USER_ID DESC
'[스파르타코딩클럽]데이터분석 과정 > TIL&WIL' 카테고리의 다른 글
23.12.20 (0) | 2023.12.20 |
---|---|
23.12.19 (0) | 2023.12.19 |
23.12.16 ~ 17 (0) | 2023.12.17 |
23.12.15 (0) | 2023.12.15 |
23.12.14 (0) | 2023.12.14 |