Programmers_SQL_LV1_MySQL

2023. 2. 15. 21:38SQL/Programmers

728x90

https://school.programmers.co.kr/learn/challenges?order=acceptance_desc&levels=1&languages=mysql&page=1

 

코딩테스트 연습 | 프로그래머스 스쿨

개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!

school.programmers.co.kr

 

  • 상위 n개 레코드
-- 코드를 입력하세요
SELECT NAME from ANIMAL_INS order by DATETIME limit 1;
  • 동물의 아이디와 이름
-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME from ANIMAL_INS;
  • 어린 동물 찾기
-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME from ANIMAL_INS where INTAKE_CONDITION != 'Aged'
  • 이름이 있는 동물의 아이디
-- 코드를 입력하세요
SELECT ANIMAL_ID from ANIMAL_INS  where NAME is not null order by ANIMAL_ID;
  • 여러 기준으로 정렬하기
-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME, DATETIME from ANIMAL_INS order by NAME, DATETIME DESC;
  • 아픈 동물 찾기
-- 코드를 입력하세요
SELECT ANIMAL_ID, NAME from ANIMAL_INS where INTAKE_CONDITION = 'Sick';
  • 역순 정렬하기
-- 코드를 입력하세요
SELECT NAME, DATETIME from ANIMAL_INS order by ANIMAL_ID DESC;
  • 나이 정보가 없는 회원 수 구하기
-- 코드를 입력하세요
SELECT COUNT(USER_ID) as USERS
from USER_INFO 
where AGE is NULL;
  • 강원도에 위치한 생산공장 목록 출력하기
-- 코드를 입력하세요
SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
from FOOD_FACTORY 
where ADDRESS like "강원도%"
order by FACTORY_ID;
  • 경기도에 위치한 식품창고 목록 출력하기
-- 코드를 입력하세요
SELECT WAREHOUSE_ID,
    WAREHOUSE_NAME,
    ADDRESS,
    IF(FREEZER_YN is NULL || FREEZER_YN = "N", "N" , "Y") as FREEZER_YN
from FOOD_WAREHOUSE 
where LEFT(TLNO, 3) = 031
order by WAREHOUSE_ID;
  • 이름이 없는 동물의 아이디
-- 코드를 입력하세요
SELECT ANIMAL_ID from ANIMAL_INS where NAME is NULL;
  • 조건에 맞는 회원수 구하기
-- 코드를 입력하세요
SELECT COUNT(*) as USERS
from USER_INFO 
where JOINED LIKE "2021%" AND AGE BETWEEN 20 AND 29;
  • 가장 비싼 상품 구하기
-- 코드를 입력하세요
SELECT MAX(PRICE) as MAX_PRICE
from PRODUCT ;
  • 흉부외과 또는 일반외과 의사 목록 출력하기
-- 코드를 입력하세요
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;
  • 12세 이하인 여자 환자 목록 출력하기
-- 코드를 입력하세요
SELECT PT_NAME,
    PT_NO,
    GEND_CD,
    AGE,
    IFNULL(TLNO, "NONE")
from PATIENT
where AGE <= 12 AND GEND_CD = "W"
order by AGE DESC, PT_NAME ASC;
  • 인기있는 아이스크림
-- 코드를 입력하세요
SELECT FLAVOR
from FIRST_HALF
order by TOTAL_ORDER DESC, SHIPMENT_ID ASC;
  • 모든 레코드 조회하기
-- 코드를 입력하세요
SELECT * from ANIMAL_INS order by ANIMAL_ID ASC;
  • 최댓값 구하기
-- 코드를 입력하세요
SELECT max(DATETIME) AS '시간' from ANIMAL_INS;
  • 과일로 만든 아이스크림 고르기
-- 코드를 입력하세요
SELECT f.FLAVOR
from FIRST_HALF as f
left join ICECREAM_INFO as i 
on f.FLAVOR = i.FLAVOR
where f.TOTAL_ORDER > 3000 AND i.INGREDIENT_TYPE = "fruit_based"
order by TOTAL_ORDER DESC;
  • 조건에 맞는 도서 리스트 출력하기
-- 코드를 입력하세요
SELECT BOOK_ID, 
    DATE_FORMAT(PUBLISHED_DATE, "%Y-%m-%d")
FROM BOOK
WHERE LEFT(PUBLISHED_DATE, 4) = "2021" AND CATEGORY = "인문"
ORDER BY PUBLISHED_DATE ASC;
  • 평균 일일 대여 요금 구하기
-- 코드를 입력하세요
SELECT ROUND(AVG(DAILY_FEE), 0) AS AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR 
WHERE CAR_TYPE="SUV"
  • 특정 옵션이 포함된 자동차 리스트 구하기
-- 코드를 입력하세요
SELECT CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS
from CAR_RENTAL_COMPANY_CAR
where OPTIONS like "%네비게이션%"
order by CAR_ID DESC;
  • 자동차 대여 기록에서 장기/단기 대여 구분하기
-- 코드를 입력하세요
select 
    HISTORY_ID, 
    CAR_ID, 
    DATE_FORMAT(START_DATE, '%Y-%m-%d') START_DATE, 
    DATE_FORMAT(END_DATE, '%Y-%m-%d') END_DATE,
    IF (timestampdiff(DAY, START_DATE, END_DATE) < 29, '단기 대여', '장기 대여') RENT_TYPE
from 
    CAR_RENTAL_COMPANY_RENTAL_HISTORY 
where 
    DATE_FORMAT(START_DATE, '%Y%m')='202209'
order by 
    HISTORY_ID desc

 

 

'SQL > Programmers' 카테고리의 다른 글

Programmers_SQL_LV4_MySQL  (0) 2023.02.16
Programmers_SQL_LV3_MySQL  (0) 2023.02.15
Programmers_SQL_LV2_MySQL  (0) 2023.02.15