일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 다이나믹 프로그래밍
- javascript
- inflearn
- 코딩테스트
- html
- codecademy
- SWEA
- 구현
- DFS
- android
- Kotlin
- 순환
- Spring
- Color
- CSS
- 클린코드
- java
- 프로그래머스
- 정렬
- SQL
- BFS
- 알고리즘
- front-end
- 검색트리
- Web
- algorithm
- DP
- 해슁
- CleanCode
- 자바
- Today
- Total
깡뇽
[프로그래머스] SQL High Score Kit - SELECT (2) 본문
풀지 않았던 나머지 SELECT 유형 풀기..!
조건에 맞는 도서 리스트 출력하기
문제 : `BOOK` 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 ID, 출판일 조회
- 출판일 기준 오름차순 정렬
SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') FROM BOOK
WHERE CATEGORY = '인문' AND YEAR(PUBLISHED_DATE) = 2021
ORDER BY PUBLISHED_DATE ASC;
DATE_FORMAT(날짜데이터, 형식)
조건에 맞는 회원수 구하기
문제 : `USER_INFO` 테이블에서 2021년에 가입한 회원 중 20세 이상 29세 이하 회원 수 조회
SELECT COUNT(*) AS USERS FROM USER_INFO WHERE YEAR(JOINED) = 2021 AND AGE >= 20 AND AGE <= 29;
조건에 부합하는 중고거래 댓글 조회하기
문제 : `USED_GOODS_BOARD` 테이블과 `USED_GOODS_REPLY` 테이블에서 2022년 10월에 작성된 게스글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일 조회
- 댓글 작성일 기준 오름차순, 게시글 제목 기준 오름차순 정
SELECT B.TITLE, B.BOARD_ID, R.REPLY_ID, R.WRITER_ID, R.CONTENTS, DATE_FORMAT(R.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE FROM USED_GOODS_BOARD B, USED_GOODS_REPLY R
WHERE B.BOARD_ID = R.BOARD_ID AND YEAR(B.CREATED_DATE) = 2022 AND MONTH(B.CREATED_DATE) = 10
ORDER BY R.CREATED_DATE ASC, B.TITLE ASC;
JOIN 다른 문법 : FROM USED_GOODS_BOARD B JOIN USED_GOODS_REPLY R USING(BOARD_ID)
DATE 비교 다른 문법 : WHERE B.CREATED_DATE LIKE '2022-10%'
*주의) 게시글 테이블과 댓글 테이블 중에서 어떤 테이블의 정보를 가져와야 하는 것인지 헷갈리지 않도록!
흉부외과 또는 일반외과 의사 목록 출력하기
문제 : `DOCTOR` 테이블에서 진료과 CS 또는 GS인 의사의 이름, 의사ID, 진료과, 고용일자 조회
- 고용일자 기준 내림차순 정렬, 이름 기준 오름차순 정렬
SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMD FROM DOCTOR
WHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS'
ORDER BY HIRE_YMD DESC, DR_NAME ASC;
과일로 만든 아이스크림 고르기
문제 : `상반기 아이스크림 총주문량 3,000보다 높으면 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총주문량이 큰 순서대로 조회
SELECT FLAVOR FROM FIRST_HALF FH JOIN ICECREAM_INFO II USING(FLAVOR)
WHERE FH.TOTAL_ORDER > 3000 AND II.INGREDIENT_TYPE = 'fruit_based';
강원도에 위치한 생산공장 목록 출력하기
문제 : `FOOD_FACTORY` 테이블에서 강원도에 위치한 식품공장의 공장ID, 공장 이름, 주소 조회
- 공장 ID 기준 오름차순 정렬
SELECT FACTORY_ID, FACTORY_NAME, ADDRESS FROM FOOD_FACTORY WHERE ADDRESS LIKE "%강원도%";
Python 개발자 찾기
문제 : `DEVELOPER_INFOS` 테이블에서 Python 스킬을 가진 개발자의 ID, 이메일, 이름 , 성 조회
- ID 기준 오름차순 정렬
SELECT ID, EMAIL, FIRST_NAME, LAST_NAME FROM DEVELOPER_INFOS
WHERE SKILL_1 = "Python" OR SKILL_2 = "Python" OR SKILL_3 = "Python"
ORDER BY ID;
잔챙이 잡은 수 구하기
문제 : 잡은 물고기 중 길이가 10cm 이하인 물고기의 수 출력
- 테이블에는 물고기의 길이가 10cm 이하일 경우에는 LENGTH가 NULL로 표시
SELECT COUNT(*) AS FISH_COUNT FROM FISH_INFO WHERE LENGTH IS NULL;
가장 큰 물고기 10마리 구하기
문제 : `FISH_INFO` 테이블에서 가장 큰 물고기 10마리의 ID와 길이 출력
- 길이 기준 내림차순, ID 기준 오름차순 정렬
- 가장 큰 물고기가 10마리 중 길이가 10cm 이하인 경우는 없음
SELECT ID, LENGTH FROM FISH_INFO
ORDER BY LENGTH DESC, ID ASC
LIMIT 10;
LIMIT : 제한
특정 형질을 가지는 대장균 찾기
문제 : 2번 형질은 보유하지 않으면서 1번이나 3번 형질을 보유하고 있는 대장균 개체의 수 출력
- 1번 형질 : 1(2진수) -> 1
- 2번 형질 : 10(2진수) -> 2
- 3번 형질 : 100(2진수) -> 4
SELECT COUNT(*) AS COUNT FROM ECOLI_DATA
WHERE (GENOTYPE & 1 OR GENOTYPE & 4) AND !(GENOTYPE & 2);
'Computer Language > SQL' 카테고리의 다른 글
[프로그래머스] SQL High Score Kit - IS NULL (1) (0) | 2023.10.21 |
---|---|
[프로그래머스] SQL High Score Kit - SUM, MAX, MIN (1) (0) | 2023.10.20 |
[프로그래머스] SQL High Score Kit - SELECT (1) (1) | 2023.10.20 |
[프로그래머스] SQL High Score Kit - String, Data (0) | 2022.03.03 |
[프로그래머스] SQL High Score Kit - JOIN (0) | 2022.03.03 |