Lv1. 가장 비싼 상품 구하기
PRODUCT 테이블에서 판매 중인 상품 중 가장 높은 판매가를 출력하는 SQL문을 작성해주세요. 이때 컬럼명은 MAX_PRICE로 지정해주세요.
SELECT MAX(PRICE) AS MAX_PRICE
FROM PRODUCT;
Lv1. 최댓값 구하기
가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.
SELECT MAX(DATETIME) AS 시간
FROM ANIMAL_INS;
🚨🔍Lv1. 잡은 물고기 중 가장 큰 물고기의 길이 구하기
FISH_INFO 테이블에서 잡은 물고기 중 가장 큰 물고기의 길이를 'cm' 를 붙여 출력하는 SQL 문을 작성해주세요. 이 때 컬럼명은 'MAX_LENGTH' 로 지정해주세요.
[ 틀린 코드 ]
SELECT MAX(LENGTH) AS MAX_LENGTH
FROM FISH_INFO
[ 원인 ]
cm를 붙여야한다.
[ 해결법 ]
CONCAT 함수는 SQL에서 문자열을 연결하는 데 사용된다.
- Oracle
두 개의 문자열만 CONCAT으로 연결 가능
세 개이상의 문자열을 연결하려면 || 연산자 사용
- MySQL
두 개 이상의 문자열도 CONCAT으로 연결 가능
[ 정답 코드 ]
SELECT CONCAT(MAX(LENGTH), 'cm') AS MAX_LENGTH
FROM FISH_INFO
🔍Lv2. 가격이 제일 비싼 식품 정보 보기
FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해주세요.
SELECT *
FROM FOOD_PRODUCT
WHERE PRICE = (
SELECT MAX(PRICE)
FROM FOOD_PRODUCT
);
[ 대안 ] - MySQL
SELECT *
FROM FOOD_PRODUCT
ORDER BY PRICE DESC
LIMIT 1;
서브쿼리가 먼저 실행되고, 그 결과를 메인 쿼리와 비교하는 방식이므로,
데이터 양이 많아지면 성능이 떨어질 수 있다.
ORDER BY와 LIMIT을 사용하여 최대 값을 찾는 방식이 더 효율적일 수 있다.
Lv2. 최솟값 구하기
동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.
SELECT MIN(DATETIME)
FROM ANIMAL_INS;
Lv2. 동물 수 구하기
동물 보호소에 동물이 몇 마리 들어왔는지 조회하는 SQL 문을 작성해주세요.
SELECT COUNT(*) AS COUNT
FROM ANIMAL_INS;
Lv2. 중복 제거하기
동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.
SELECT COUNT(DISTINCT NAME) AS count
FROM ANIMAL_INS
WHERE NAME IS NOT NULL;
Lv2. 조건이 맞는 아이템들의 가격 총합 구하기
ITEM_INFO 테이블에서 희귀도가 'LEGEND'인 아이템들의 가격의 총합을 구하는 SQL문을 작성해 주세요. 이때 컬럼명은 'TOTAL_PRICE'로 지정해 주세요.
SELECT SUM(PRICE) AS TOTAL_PRICE
FROM ITEM_INFO
WHERE RARITY = 'LEGEND';
🚨🔍Lv2. 연도별 대장균 크기의 편차 구하기
분화된 연도(YEAR), 분화된 연도별 대장균 크기의 편차(YEAR_DEV), 대장균 개체의 ID(ID) 를 출력하는 SQL 문을 작성해주세요. 분화된 연도별 대장균 크기의 편차는 분화된 연도별 가장 큰 대장균의 크기 - 각 대장균의 크기로 구하며 결과는 연도에 대해 오름차순으로 정렬하고 같은 연도에 대해서는 대장균 크기의 편차에 대해 오름차순으로 정렬해주세요.
(조금 복잡해서 다음 포스팅에 정리)
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Lv1, Lv2] IS NULL(SQL) (1) | 2024.11.22 |
---|---|
[프로그래머스 Lv2] GROUP BY(SQL) (1) | 2024.11.22 |
[프로그래머스 Lv2] SELECT(SQL) (0) | 2024.11.20 |
[프로그래머스 Lv1] SELECT(SQL) (4) | 2024.11.19 |
[프로그래머스 Lv.2] 게임 맵 최단거리(Java) (3) | 2024.11.12 |