<SQL 고득점 Kit> 01. SELECT

2026. 2. 28. 00:49·개인공부정리페이지

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
'개인공부정리페이지' 카테고리의 다른 글
  • <알고리즘> Java, 매출 하락 최소화 - Tree(트리), DP
  • <MySQL> DATETIME 타입 DATE로 변환
  • [트러블슈팅].. PEM키가 공개된사건
  • MergeSort implement in C
sihyes
sihyes
24학번 컴퓨터공학과
  • sihyes
    시혜적으로개발
    sihyes
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (114)
      • 단순 설정 (10)
      • 백엔드 공부(BE, AWS) (8)
        • 로그인&회원가입 (3)
        • 파일업로드&GPT (2)
      • 컴퓨터공학과 (51)
        • 운영체제 (0)
        • Artificial Intelligence (0)
        • Java 1 & 2 (23)
        • 컴퓨터네트워크 (3)
        • 모앱JavaScript (0)
        • Data structures (9)
        • 소프트웨어공학 (5)
        • 오픈SW플랫폼 제출용 (5)
        • Python - 문해프 (1)
      • 개인 프로젝트 (2)
        • 알바솔로몬 (1)
        • PLACO 프로젝트 (0)
      • 도서 공부(정리) (20)
        • 알고리즘 코딩 테스트 자바 편 (1)
        • SQL첫걸음 (8)
        • 코딩 자율학습 스프링 부트 3 자바 백엔드 개발 .. (6)
        • Do it! 지옥에서 온 문서 관리자 깃&깃허브 .. (5)
      • 개인공부정리페이지 (12)
        • 백준 & 프로그래머스 (3)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ㅇ
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.4
sihyes
<SQL 고득점 Kit> 01. SELECT
상단으로

티스토리툴바