본문 바로가기
Skill Stacks/MySQL

SQL 문제풀이 20230601

by JayAlex07 2023. 6. 1.

SQL 문제풀이 20230601

 

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

회원 정보에서 Age가 NULL, 즉 정보가 없는 회원의 수를 구하는 것이다

  • AGE가 NULL인 회원들을 찾고, COUNT(*)를 통해, 회원 수를 구한다
SELECT COUNT(*) AS USERS FROM USER_INFO
WHERE AGE IS NULL

 

 

강원도에 위치한 생산공장 목록 출력하기

제목 그대로, 강원도에 위치한 공장을 찾는 것이다

  • ADDRESS에 강원도로 주소가 적힌 테이블을 출력한다
  • 주소는 '도'만 있는 것이 아닌, 도로명까지 다 작성이 되어있다
    • 그래서 LIKE "강원도%" 를 통해, 강원도로 시작하는 주소를 찾는 것이다
SELECT FACTORY_ID, FACTORY_NAME, ADDRESS FROM FOOD_FACTORY
WHERE ADDRESS LIKE "강원도%"
ORDER BY FACTORY_ID ASC

 

 

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

경기도가 주소인 식품 창고를 출력하는 것

  • IFNULL(FREEZER_YN, "N") : 값이 NULL 일 때에, "N"으로 채워주는 것이다
SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, IFNULL(FREEZER_YN, "N") AS FREEZER_YN 
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE '경기도%'
ORDER BY WAREHOUSE_ID ASC

 

 

가장 비싼 상품 구하기

최대값을 구하는 것이다

  • MAX() : 최대값
  • MIN() : 최소값
  • AVG() : 평균값
  • SUM() : 모두 더하기
SELECT MAX(PRICE) AS MAX_PRICE FROM PRODUCT

 

 

조건에 맞는 회원수 구하기

2021년에 가입하고 20살~29살인 회원의 수를 구하는 것

Between 활용

SELECT COUNT(*) AS USERS FROM USER_INFO
WHERE AGE BETWEEN 20 AND 29 AND JOINED BETWEEN "2021-01-01" AND "2021-12-31"

LIKE 활용

SELECT COUNT(*) AS USERS FROM USER_INFO
WHERE AGE LIKE "2%" AND JOINED LIKE "2021%"