두 번째 날. 다른거 하기 싫어서 코딩테스트로 도망 옴(?) 아직까지는 재밌다는 뜻.
오늘은 실제로 시간이 얼마나 걸렸는지 재보려고 한다.
재구매가 일어난 상품과 회원 리스트 구하기
#HAVING
WHERE절이 아닌 HAVING절에서 조건 걸기!
SELECT USER_ID, PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(PRODUCT_ID) <> 1
ORDER BY USER_ID ASC, PRODUCT_ID DESC
;
모든 레코드 조회하기
#ORDERBY
너무 쉬워서 당황한 문제... 이런건 1번에 넣어달라구?
SELECT *
FROM ANIMAL_INS
ORDER
BY ANIMAL_ID
;
오프라인/온라인 판매 데이터 통합하기
#UNION ALL
이제 이정도는 간단하쥬
* 'NULL' 아니고 NULL 그대로 써야 함
WITH ALL_SALES AS (SELECT SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM ONLINE_SALE
UNION ALL
SELECT SALES_DATE, PRODUCT_ID, NULL AS USER_ID, SALES_AMOUNT
FROM OFFLINE_SALE
)
SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE,
PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM ALL_SALES
WHERE DATE_FORMAT(SALES_DATE, '%Y-%m') = '2022-03'
ORDER BY 1,2,3
역순 정렬하기
#ORDERBY
SELECT NAME, DATETIME
FROM ANIMAL_INS
ORDER
BY ANIMAL_ID DESC
;
아픈 동물 찾기
#WHERE
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION = 'SICK'
ORDER
BY ANIMAL_ID
;
어린 동물 찾기
#WHERE #연산자
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION <> 'AGED'
ORDER
BY ANIMAL_ID
;
동물의 아이디와 이름
#SELECT #ORDERBY
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
ORDER
BY ANIMAL_ID
;
여러 기준으로 정렬하기
#ORDERBY
SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER
BY NAME, DATETIME DESC
;
상위 n개 레코드
#WINDOW #RANK
윈도우 함수 복습!
SELECT NAME
FROM (SELECT NAME,
RANK() OVER (ORDER BY DATETIME) AS DATE_RANK
FROM ANIMAL_INS) A
WHERE DATE_RANK = '1'
;
아래는 너무나 똑똑한 챗GPT를 이용해 정리한 주로 쓰이는 윈도우 함수에 대한 설명.
조건에 맞는 회원수 구하기
#COUNT #BETWEEN
한 방에 정답 맞췄을 때의 짜릿함...✨
SELECT COUNT(USER_ID) USERS
FROM USER_INFO
WHERE YEAR(JOINED) = 2021 AND AGE BETWEEN 20 AND 29
;
오늘은 대부분 너무 쉬운 문제가 많았어서 휘리릭 풀었는데, 총 1시간 반 정도 걸렸다.
중간에 윈도우함수 공부하느라 유튜브, 챗GPT 쓰는 데에 30분 정도 소요된 걸 감안해도 생각보다 꽤 걸렸는데...
앞으로 다 잊어먹은 JOIN, SUBQUARY 이런거 나오면 시간이 얼마나 걸릴까 좀 무서워졌다...
아무튼 2일차도 끝!
'[공부] SQL' 카테고리의 다른 글
[SQL 코딩테스트] 리트코드 Select 정답 (0) | 2024.01.22 |
---|---|
[SQL 코딩테스트] 프로그래머스 String, Date 정답 (0) | 2024.01.18 |
[SQL 코딩테스트] 프로그래머스 IS NULL 정답 (0) | 2024.01.17 |
[SQL 코딩테스트] 프로그래머스 SUM, MAX, MIN 정답 (0) | 2024.01.17 |
[SQL 코딩테스트] 프로그래머스 SELECT 정답 (1) (0) | 2024.01.16 |