SELECT
- 출제 빈도 낮음
- 평균 점수 높음
02/27 이후 푼 문제들만
01. 강원도에 위치한 생산공장 목록 출력하기
link : https://school.programmers.co.kr/learn/courses/30/lessons/131112
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
SELECT FACTORY_ID, FACTORY_NAME, ADDRESS FROM FOOD_FACTORY
WHERE ADDRESS LIKE "%강원도%"
ORDER BY FACTORY_ID ASC;
02. 오프라인/온라인 판매 데이터 통합하기
https://school.programmers.co.kr/learn/courses/30/lessons/131537
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT FROM ONLINE_SALE
WHERE SALES_DATE LIKE '%2022-03%'
UNION ALL
SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, NULL AS USER_ID, SALES_AMOUNT
FROM OFFLINE_SALE
WHERE SALES_DATE LIKE '%2022-03%'
ORDER BY SALES_DATE ASC, PRODUCT_ID ASC, USER_ID ASC;
`UNION ALL` : 합집합
`NULL AS USER_ID` : 없는 컬럼을 채우기
03. NULL 처리하기
https://school.programmers.co.kr/learn/courses/30/lessons/59410
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
SELECT ANIMAL_TYPE, COALESCE(NAME, 'No name'), SEX_UPON_INTAKE
FROM ANIMAL_INS;
`COALESCE(컬럼명, 대체할 것)` : null인 값을 뒤에있는 첫번째 그걸로 변환한다.
COALESCE는 여러 값 중에서 NULL이 아닌 첫 번째 값을 반환하는 함수이다.
주로 NULL 대체값 처리에 사용된다.
04. ROOT 아이템 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/273710
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
SELECT i.ITEM_ID, i.ITEM_NAME
FROM ITEM_INFO i
JOIN ITEM_TREE t
ON i.ITEM_ID = t.ITEM_ID
WHERE t.PARENT_ITEM_ID IS NULL
ORDER BY i.ITEM_ID;
SYNTAX : `JOIN 테이블명 (별명) ON 조건`
SELECT 컬럼
FROM 테이블1 별명
JOIN 테이블2 별명
ON 조인조건
JOIN 테이블명 AS 별명 ON 조건
JOIN == INNER JOIN과 같은 의미.
05. 업그레이드 할 수 없는 아이템 구하기
5.1 LEFT JOIN 활용
SYNTAX : 왼쪽 테이블(A)은 무조건 다 나오고,오른쪽 테이블(B)은 조건 맞는 것만 붙는다.
SELECT 컬럼
FROM A
LEFT JOIN B
ON 조인조건;
SELECT i.ITEM_ID, i.ITEM_NAME, i.RARITY
FROM ITEM_INFO i
LEFT JOIN ITEM_TREE t
ON i.ITEM_ID = t.PARENT_ITEM_ID
WHERE t.PARENT_ITEM_ID IS NULL
ORDER BY ITEM_ID DESC;
1. item_id = parent_item_id 인 걸 찾아주면,
0 ... 1, 2
1 ... 3 4
2 ... null
3 ... null
4 ... null
이렇게된다. 그래서 null이된애들 찾아주면됨.
5.3(권장X)방식... NULL 처리 못하는 NOT IN 때문.
SELECT ITEM_ID, ITEM_NAME, RARITY
FROM ITEM_INFO
WHERE ITEM_ID NOT IN (
SELECT PARENT_ITEM_ID FROM ITEM_TREE WHERE
PARENT_ITEM_ID IS NOT NULL
)
ORDER BY ITEM_ID DESC;
조건문이 킥이었다. ITEM ID를 고르는데,,,, 서브쿼리! )
`ITEM_TREE`테이블에서 `PARENT_ITEM_ID` != null이지 않았던 PARENT_ITEM_ID를 나열하고, 여기에 포함되지않는 ITEM ID를 고른다.
06. 잡은 물고기의 평균 길이 구하기
SELECT ROUND(AVG(COALESCE(LENGTH, 10)),2) AS AVERAGE_LENGTH FROM FISH_INFO;
1) `ROUND(숫자, 자리수)` : 특정 자리수에서 반올림한다. 위 코드에서는 소수점 둘째 자리까지 반올림함
2) COALESCE(LENGTH, 10) LENGTH가 null이면 10으로 대체함
3) AVG = average 구하는 것
07. 나이 정보가 없는 회원 수 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/131528
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
SELECT COUNT(*) AS USERS
FROM USER_INFO
WHERE AGE IS NULL;
집계함수 `COUNT` 사용
'개인공부정리페이지' 카테고리의 다른 글
| <알고리즘> Java, 매출 하락 최소화 - Tree(트리), DP (0) | 2026.02.27 |
|---|---|
| <MySQL> DATETIME 타입 DATE로 변환 (0) | 2026.02.26 |
| [트러블슈팅].. PEM키가 공개된사건 (2) | 2025.11.29 |
| MergeSort implement in C (0) | 2025.09.24 |
| 코드 포매터 (0) | 2025.08.31 |