1. 경기도에 위치하는 식품창고 목록 출력하기
문제 설명
다음은 식품창고의 정보를 담은 FOOD_WAREHOUSE 테이블입니다. FOOD_WAREHOUSE 테이블은 다음과 같으며 WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, TLNO, FREEZER_YN는 창고 ID, 창고 이름, 창고 주소, 전화번호, 냉동시설 여부를 의미합니다.
Column name | Type | Nullable |
WAREHOUSE_ID | VARCHAR(10) | FALSE |
WAREHOUSE_NAME | VARCHAR(20) | FALSE |
ADDRESS | VARCHAR(100) | TRUE |
TLNO | VARCHAR(20) | TRUE |
FREEZER_YN | VARCHAR(1) | TRUE |
문제
FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주세요.
나의 풀이
SELECT WAREHOUSE_ID , WAREHOUSE_NAME , ADDRESS ,
COALESCE(FREEZER_YN, "N") AS FREEZER_YN
FROM FOOD_WAREHOUSE
WHERE LEFT(ADDRESS,2) = "경기"
ORDER BY WAREHOUSE_ID
2. 가장 큰 물고기 10마리 구하기
문제 설명
FISH_INFO 테이블에서 가장 큰 물고기 10마리의 ID와 길이를 출력하는 SQL 문을 작성해주세요. 결과는 길이를 기준으로 내림차순 정렬하고, 길이가 같다면 물고기의 ID에 대해 오름차순 정렬해주세요. 단, 가장 큰 물고기 10마리 중 길이가 10cm 이하인 경우는 없습니다.
ID 컬럼명은 ID, 길이 컬럼명은 LENGTH로 해주세요.
나의 풀이
SELECT ID , LENGTH
FROM FISH_INFO
ORDER BY LENGTH DESC , ID ASC
LIMIT 10
MySQL에서 상위 10개를 구하는 방법 : 구문 제일 하단에 LIMIT 10
MSSQL에서 상위 10개를 구하는 방법 : SELECT 다음에 TOP 10
3. 한 해에 잡은 물고기 수 구하기
문제 설명
FISH_INFO 테이블에서 2021년도에 잡은 물고기 수를 출력하는 SQL 문을 작성해주세요.
이 때 컬럼명은 'FISH_COUNT' 로 지정해주세요.
나의 풀이
SELECT COUNT(*) AS FISH_COUNT
FROM FISH_INFO
WHERE YEAR(TIME) = 2021
4. 잡은 물고기 중 가장 큰 물고기의 길이 구하기
문제 설명
FISH_INFO 테이블에서 잡은 물고기 중 가장 큰 물고기의 길이를 'cm' 를 붙여 출력하는 SQL 문을 작성해주세요.
이 때 컬럼명은 'MAX_LENGTH' 로 지정해주세요.
나의 풀이
SELECT CONCAT(MAX(LENGTH),'cm') AS MAX_LENGTH
FROM FISH_INFO
5. 잡은 물고기의 평균 길이 구하기
문제 설명
잡은 물고기의 평균 길이를 출력하는 SQL문을 작성해주세요.
평균 길이를 나타내는 컬럼 명은 AVERAGE_LENGTH로 해주세요.
평균 길이는 소수점 3째자리에서 반올림하며, 10cm 이하의 물고기들은 10cm 로 취급하여 평균 길이를 구해주세요.
나의 풀이
SELECT ROUND(AVG(A.LENGTH) ,2) AS AVERAGE_LENGTH
FROM (SELECT COALESCE(LENGTH , 10) AS LENGTH
FROM FISH_INFO) AS A
6. 물고기 종류 별 잡은 수 구하기
문제 설명
FISH_NAME_INFO에서 물고기의 종류 별 물고기의 이름과 잡은 수를 출력하는 SQL문을 작성해주세요.
물고기의 이름 컬럼명은 FISH_NAME, 잡은 수 컬럼명은 FISH_COUNT로 해주세요.
결과는 잡은 수 기준으로 내림차순 정렬해주세요.
나의 풀이
SELECT COUNT(*) AS FISH_COUNT , B.FISH_NAME
FROM FISH_INFO AS A
LEFT JOIN FISH_NAME_INFO AS B
ON A.FISH_TYPE = B.FISH_TYPE
GROUP BY B.FISH_NAME
ORDER BY FISH_COUNT DESC
7. 월별 잡은 물고기 수 구하기
문제 설명
월별 잡은 물고기의 수와 월을 출력하는 SQL문을 작성해주세요.
잡은 물고기 수 컬럼명은 FISH_COUNT, 월 컬럼명은 MONTH로 해주세요.
결과는 월을 기준으로 오름차순 정렬해주세요.
단, 월은 숫자형태 (1~12) 로 출력하며 9 이하의 숫자는 두 자리로 출력하지 않습니다. 잡은 물고기가 없는 월은 출력하지 않습니다.
나의 풀이
SELECT COUNT(*) AS FISH_COUNT , MONTH(TIME) AS MONTH
FROM FISH_INFO
GROUP BY MONTH(TIME)
ORDER BY MONTH(TIME)
8. 특정 물고기를 잡은 총 수 구하기
문제 설명
FISH_INFO 테이블에서 잡은 BASS와 SNAPPER의 수를 출력하는 SQL 문을 작성해주세요.
컬럼명은 'FISH_COUNT`로 해주세요.
나의 풀이
SELECT COUNT(*) AS FISH_COUNT
FROM FISH_INFO AS A
LEFT JOIN FISH_NAME_INFO AS B
ON A.FISH_TYPE = B.FISH_TYPE
WHERE B.FISH_NAME = 'BASS' OR B.FISH_NAME = 'SNAPPER'
9. 특정 조건을 만족하는 물고기별 수와 최대 길이 구하기
문제 설명
FISH_INFO에서 평균 길이가 33cm 이상인 물고기들을 종류별로 분류하여 잡은 수, 최대 길이, 물고기의 종류를 출력하는 SQL문을 작성해주세요. 결과는 물고기 종류에 대해 오름차순으로 정렬해주시고, 10cm이하의 물고기들은 10cm로 취급하여 평균 길이를 구해주세요.
컬럼명은 물고기의 종류 'FISH_TYPE', 잡은 수 'FISH_COUNT', 최대 길이 'MAX_LENGTH'로 해주세요.
나의 풀이
SELECT COUNT(*) AS FISH_COUNT , MAX(LENGTH) AS MAX_LENGTH , FISH_TYPE
FROM FISH_INFO
GROUP BY FISH_TYPE
HAVING AVG(COALESCE(LENGTH,10)) >= 33
ORDER BY FISH_TYPE
10. 물고기 종류 별 대어 찾기
문제 설명
물고기 종류 별로 가장 큰 물고기의 ID, 물고기 이름, 길이를 출력하는 SQL 문을 작성해주세요.
물고기의 ID 컬럼명은 ID, 이름 컬럼명은 FISH_NAME, 길이 컬럼명은 LENGTH로 해주세요.
결과는 물고기의 ID에 대해 오름차순 정렬해주세요.
단, 물고기 종류별 가장 큰 물고기는 1마리만 있으며 10cm 이하의 물고기가 가장 큰 경우는 없습니다.
나의 풀이
SELECT A.ID ,B.FISH_NAME, A.LENGTH
FROM FISH_INFO AS A
RIGHT JOIN
(SELECT FISH_TYPE , MAX(LENGTH) AS LENGTH
FROM FISH_INFO
GROUP BY FISH_TYPE) AS C
ON A.FISH_TYPE = C.FISH_TYPE
AND A.LENGTH = C.LENGTH
LEFT JOIN FISH_NAME_INFO AS B
ON A.FISH_TYPE = B.FISH_TYPE
ORDER BY A.ID
'프로그래머스' 카테고리의 다른 글
[프로그래머스] Python Lv.1 부족한 금액 계산하기 외 5문제 (4) | 2024.09.30 |
---|---|
[프로그래머스] Python Lv.1 나누어 떨어지는 숫자 배열 외 4문제 (2) | 2024.09.11 |
[프로그래머스] Python Lv.1 콜라츠 추측 , 없는 숫자 더하기 , 수박수박수박수? (0) | 2024.08.16 |
[프로그래머스] Python Lv.1 가장 많이 받은 선물 (1) | 2024.01.08 |
[프로그래머스] MySQL Lv.3 헤비유저가 소유한 장소 / Lv.4 주문량이 많은 아이스크림들 조회하기 (1) | 2024.01.07 |