코딩 문제풀이 | 프로그래머스 | MySQL | “SUM, MAX, MIN” | “IS NULL”

isitcake_yes·2023년 2월 2일
0

코딩문제풀이

목록 보기
3/6
post-thumbnail

SUM, MAX, MIN

🎈 Lv1.

최댓값 구하기

Q. PRODUCT 테이블에서 판매 중인 상품 중 가장 높은 판매가를 출력하는 SQL문을 작성해주세요. 이때 컬럼명은 MAX_PRICE로 지정해주세요.

SELECT MAX(price) AS max_price FROM product;

🎈🎈 Lv2.

최솟값 구하기

Q. 동물 보호소에 가장 먼저 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.

SELECT MIN(datetime) FROM animal_ins;

가격이 제일 비싼 식품의 정보 출력하기

Q. FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해주세요.


SELECT * FROM food_product WHERE price = (SELECT MAX(price) FROM food_product);

SELECT * FROM food_product ORDER BY price DESC LIMIT 1; 

** LIMIT 1을 사용한다면 만약에 PRICE가 동일한 데이터가 여러 개라면 그 중에 ROWNUM이 1인 한 건만 표시됩니다. MAX함수를 사용하면 해당 테이블에서 조건이 PRICE 컬럼이 가장 큰 모든 건수가 조회되므로 결과가 달라질 수 있어 구분해서 사용해야 한다고 생각합니다.

동물 수 구하기

Q. 동물 보호소에서 컨디션이 Normal인 동물은 몇 마리인지 조회하는 SQL문을 작성해주세요.

SELECT COUNT(*) FROM animal_ins WHERE intake_condition="Normal";

중복 제거하기

Q. 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.

SELECT COUNT(DISTINCT(name)) AS count FROM animal_ins WHERE name IS NOT NULL;

IS NULL

🏓 Lv1.

경기도에 위치한 식품창고 목록 출력하기

Q. FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주세요.

SELECT warehouse_id, warehouse_name, address, IFNULL(freezer_yn,"N") AS freezer_yn 
FROM food_warehouse 
WHERE address LIKE "경기도%" ORDER BY warehouse_id;

이름이 있는 / 없는 동물의 아이디

Q. 동물 보호소에 들어온 동물 중, 이름이 없는 채로(/이름이 있는) 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다.

SELECT animal_id FROM animal_ins WHERE name IS NULL ORDER BY animal_id;

SELECT animal_id FROM animal_ins WHERE name IS NOT NULL ORDER BY animal_id;

나이 정보가 없는 회원 수 구하기

Q. USER_INFO 테이블에서 나이 정보가 없는 회원이 몇 명인지 출력하는 SQL문을 작성해주세요. 이때 컬럼명은 USERS로 지정해주세요.

SELECT COUNT(*) AS users FROM user_info WHERE age IS NULL;

🏓🏓 Lv2.

NULL처리하기

Q. 입양 게시판에 동물 정보를 게시하려 합니다. 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 프로그래밍을 모르는 사람들은 NULL이라는 기호를 모르기 때문에, 이름이 없는 동물의 이름은 "No name"으로 표시해 주세요.

SELECT animal_type, IFNULL(name,"No name"), sex_upon_intake FROM animal_ins ORDER BY animal_id;

🌟정리

# IFNULL - NULL값 대체
IFNULL(컬럼명,"대체값")

# NULL인 열 찾기
WHERE 컬럼명 IS NULL

# NULL이 아닌 열 찾기
WHERE 컬럼명 IS NOT NULL
profile
주니어 개발자 주니어발록 주니어예티 주니어레이스

0개의 댓글