프로그래머스 SQL Lv.1 문제 풀이 (1)

seo0·2024년 6월 13일
post-thumbnail

모든 레코드 조회하기

동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요.

  SELECT * 
    FROM ANIMAL_INS
ORDER BY ANIMAL_ID

역순 정렬하기

동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요.

   SELECT NAME
        , DATETIME
    FROM ANIMAL_INS 
ORDER BY ANIMAL_ID DESC

아픈 동물 찾기

동물 보호소에 들어온 동물 중 아픈 동물1의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.

SELECT ANIMAL_ID
     , NAME
  FROM ANIMAL_INS 
 WHERE INTAKE_CONDITION = 'Sick'

어린 동물 찾기

동물 보호소에 들어온 동물 중 젊은 동물1의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.

SELECT ANIMAL_ID
     , NAME
  FROM ANIMAL_INS
 WHERE INTAKE_CONDITION != 'Aged'

동물의 아이디와 이름

동물 보호소에 들어온 모든 동물의 아이디와 이름을 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요.

  SELECT ANIMAL_ID
  	   , NAME
    FROM ANIMAL_INS
ORDER BY ANIMAL_ID

여러 기준으로 정렬하기

동물 보호소에 들어온 모든 동물의 아이디와 이름, 보호 시작일을 이름 순으로 조회하는 SQL문을 작성해주세요. 단, 이름이 같은 동물 중에서는 보호를 나중에 시작한 동물을 먼저 보여줘야 합니다.

  SELECT ANIMAL_ID
       , NAME
       , DATETIME
    FROM ANIMAL_INS
ORDER BY NAME
       , DATETIME DESC

상위 n개 레코드

동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성해주세요.

  SELECT NAME
    FROM ANIMAL_INS
ORDER BY DATETIME
   LIMIT 1

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

FOOD_FACTORY 테이블에서 강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소를 조회하는 SQL문을 작성해주세요. 이때 결과는 공장 ID를 기준으로 오름차순 정렬해주세요.

-- 코드를 입력하세요
  SELECT FACTORY_ID
       , FACTORY_NAME
       , ADDRESS
    FROM FOOD_FACTORY
   WHERE ADDRESS LIKE '강원도%'
ORDER BY FACTORY_ID

조건에 맞는 회원 수 구하기

USER_INFO 테이블에서 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원이 몇 명인지 출력하는 SQL문을 작성해주세요.

SELECT COUNT(0) AS USERS
  FROM USER_INFO
 WHERE JOINED LIKE '2021%'
   AND AGE BETWEEN 20 AND 29

12세 이하인 여자 환자 목록 출력하기

PATIENT 테이블에서 12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회하는 SQL문을 작성해주세요. 이때 전화번호가 없는 경우, 'NONE'으로 출력시켜 주시고 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 정렬해주세요.

  SELECT PT_NAME
       , PT_NO, GEND_CD
       , AGE
       , IFNULL(TLNO, 'NONE') AS TLNO
    FROM PATIENT
   WHERE AGE <= 12
     AND GEND_CD = 'W'
ORDER BY AGE DESC, PT_NAME

흉부외과 또는 일반외과 의사 목록 출력하기

DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.

  SELECT DR_NAME
       , DR_ID
       , MCDP_CD
       , DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMD
    FROM DOCTOR
   WHERE MCDP_CD IN ('CS', 'GS')
ORDER BY HIRE_YMD DESC
       , DR_NAME

인기있는 아이스크림

상반기에 판매된 아이스크림의 맛을 총주문량을 기준으로 내림차순 정렬하고 총주문량이 같다면 출하 번호를 기준으로 오름차순 정렬하여 조회하는 SQL 문을 작성해주세요.

  SELECT FLAVOR
    FROM FIRST_HALF
ORDER BY TOTAL_ORDER DESC
       , SHIPMENT_ID

과일로 만든 아이스크림 고르기

상반기 아이스크림 총주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총주문량이 큰 순서대로 조회하는 SQL 문을 작성해주세요.

   SELECT A.FLAVOR
     FROM FIRST_HALF A
LEFT JOIN ICECREAM_INFO B
       ON A.FLAVOR = B.FLAVOR
    WHERE A.TOTAL_ORDER >= 3000
      AND B.INGREDIENT_TYPE = 'fruit_based'
 ORDER BY TOTAL_ORDER DESC

조건에 맞는 도서 리스트 출력하기

BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요.
결과는 출판일을 기준으로 오름차순 정렬해주세요.

  SELECT BOOK_ID
       , DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') AS PUBLISHED_DATE
    FROM BOOK
   WHERE PUBLISHED_DATE LIKE '2021%'
     AND CATEGORY = '인문'
ORDER BY BOOK_ID DESC, PUBLISHED_DATE

평균 일일 대여 요금 구하기

CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정해주세요.

SELECT ROUND(AVG(DAILY_FEE), 0) AS AVERAGE_FEE 
  FROM CAR_RENTAL_COMPANY_CAR 
 WHERE CAR_TYPE = 'SUV'

조건에 부합하는 중고거래 댓글 조회하기

USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성해주세요. 결과는 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬해주세요.

   SELECT B.TITLE
        , B.BOARD_ID
        , A.REPLY_ID
        , A.WRITER_ID
        , A.CONTENTS
        , DATE_FORMAT(A.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE
     FROM USED_GOODS_REPLY A
LEFT JOIN USED_GOODS_BOARD B
       ON A.BOARD_ID = B.BOARD_ID
    WHERE YEAR(B.CREATED_DATE) = 2022 
      AND MONTH(B.CREATED_DATE) = 10
 ORDER BY A.CREATED_DATE
        , B.TITLE

Python 개발자 찾기

DEVELOPER_INFOS 테이블에서 Python 스킬을 가진 개발자의 정보를 조회하려 합니다. Python 스킬을 가진 개발자의 ID, 이메일, 이름, 성을 조회하는 SQL 문을 작성해 주세요.
결과는 ID를 기준으로 오름차순 정렬해 주세요.

  SELECT ID
       , EMAIL
       , FIRST_NAME
       , LAST_NAME
    FROM DEVELOPER_INFOS
   WHERE SKILL_1 = 'Python' 
      OR SKILL_2 = 'Python' 
      OR SKILL_3 = 'Python' 
ORDER BY ID

잔챙이 잡은 수 구하기

잡은 물고기 중 길이가 10cm 이하인 물고기의 수를 출력하는 SQL 문을 작성해주세요.
물고기의 수를 나타내는 컬럼 명은 FISH_COUNT로 해주세요.

SELECT COUNT(0) AS FISH_COUNT
  FROM FISH_INFO
 WHERE LENGTH IS NULL

가장 큰 물고기 10마리 구하기

FISH_INFO 테이블에서 가장 큰 물고기 10마리의 ID와 길이를 출력하는 SQL 문을 작성해주세요. 결과는 길이를 기준으로 내림차순 정렬하고, 길이가 같다면 물고기의 ID에 대해 오름차순 정렬해주세요. 단, 가장 큰 물고기 10마리 중 길이가 10cm 이하인 경우는 없습니다.
ID 컬럼명은 ID, 길이 컬럼명은 LENGTH로 해주세요.

  SELECT ID
       , LENGTH
    FROM FISH_INFO
   WHERE LENGTH IS NOT NULL
ORDER BY LENGTH DESC, ID
   LIMIT 10

특정 형질을 가지는 대장균 찾기

2번 형질이 보유하지 않으면서 1번이나 3번 형질을 보유하고 있는 대장균 개체의 수(COUNT)를 출력하는 SQL 문을 작성해주세요. 1번과 3번 형질을 모두 보유하고 있는 경우도 1번이나 3번 형질을 보유하고 있는 경우에 포함합니다.

SELECT COUNT(0) AS COUNT
  FROM ECOLI_DATA
 WHERE !(GENOTYPE & 2) 
   AND (GENOTYPE & 5)




0개의 댓글