본문 바로가기
[스파르타코딩클럽]데이터분석 과정/TIL&WIL

23.12.18_본 캠프 시작

by doo_ 2023. 12. 18.

[오늘 할 일]

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