오답노트
coalesce(컬럼, "NONE") ★ 값이 없는 경우, 대체하기
order by 컬럼명 desc , asc ★ 오더바이절 여러 개인 경우 쉼표(,) 추가
date_format(컬럼명, '%Y-%m-%d') ★ date언더바format(컬럼명 쉼표, '%Y-%m-%d')
where year(컬럼명)=2021
where year(어느 테이블의 컬럼명)=2021 and month(어느 테이블의 컬럼명)=10
order by (date형식의 컬럼명) asc
where 컬럼명 is not null
LV 1. 12세 이하인 여자 환자 목록 출력하기
Q. PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요.
select pt_name,
pt_no,
gend_cd,
age,
coalesce(tlno, "NONE") tlno
from patient
where age<=12 and gend_cd='W'
order by age desc,
pt_name asc
LV 1. 인기있는 아이스크림
Q. 상반기에 판매된 아이스크림의 맛을 총주문량을 기준으로 내림차순 정렬하고 총주문량이 같다면 출하 번호를 기준으로 오름차순 정렬하여 조회하는 SQL 문을 작성해주세요.
select flavor
from first_half
order by total_order desc,
shipment_id asc
LV 1. 조건에 맞는 도서 리스트 출력하기 <오답!>
Q. BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요. 결과는 출판일을 기준으로 오름차순 정렬해주세요.
풀이
1) date_format(컬럼명, '%Y-%m-%d')
2) where year(컬럼명)=2021
3) order by (date형식의 컬럼명) asc
select book_id,
date_format(published_date, '%Y-%m-%d') published_date
from book
where category='인문' and year(published_date)=2021
order by published_date asc
LV 1. 조건에 부합하는 중고거래 댓글 조회하기 <오답!>
Q. USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성해주세요. 결과는 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬해주세요.
*** USED_GOODS_BOARD 테이블은BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS은
게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미합니다.
*** USED_GOODS_REPLY 테이블은
REPLY_ID, BOARD_ID, WRITER_ID, CONTENTS, CREATED_DATE는
댓글 ID, 게시글 ID, 작성자 ID, 댓글 내용, 작성일을 의미합니다.
주의: WRITER_ID, CONTENTS, CREATED_DATE는 공통적으로 들어가지만 서로 다른 데이터임!
풀이
1) used_goods_reply r 테이블로부터 가져와야하는 자료들 확인: reply_id, writer_id, contents, created_date
2) where year(어느 테이블의 컬럼명)=2021 and month(어느 테이블의 컬럼명)=10
3) order by (어느 테이블의 컬럼명)
select b.title,
b.board_id,
r.reply_id,
r.writer_id,
r.contents,
date_format(r.created_date, '%Y-%m-%d') created_date
from used_goods_board b inner join used_goods_reply r on b.board_id=r.board_id
where year(b.created_date)=2022 and month(b.created_date)=10
order by r.created_date asc,
b.title asc
LV 2. 3월에 태어난 여성 회원 목록 출력하기 <오답!>
Q. MEMBER_PROFILE 테이블에서 생일이 3월인 여성 회원의 ID, 이름, 성별, 생년월일을 조회하는 SQL문을 작성해주세요. 이때 전화번호가 NULL인 경우는 출력대상에서 제외시켜 주시고, 결과는 회원ID를 기준으로 오름차순 정렬해주세요,
풀이
1) date_format(컬럼명, '%Y-%m-%d')
2) where 컬럼명 is not null
select member_id,
member_name,
gender,
date_format(date_of_birth,'%Y-%m-%d') date_of_birth
from member_profile
where month(date_of_birth)=03
and gender='W'
and tlno is not null
order by member_id asc
풀어보러 가기 ☞ 여기 클릭
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr

'SQL > SQL 학습' 카테고리의 다른 글
[연습] programmers SQL 고득점 키트(SELECT, 16~20) (1) | 2025.05.08 |
---|---|
[연습] programmers SQL 고득점 키트(SELECT, 11~15) (0) | 2025.05.07 |
[연습] programmers SQL 고득점 키트(SELECT, 1~5) (2) | 2025.05.02 |
[연습] SQL Lv.1~3 (0) | 2025.05.01 |
SQL 5주차④(date) (0) | 2025.04.29 |