상세 컨텐츠

본문 제목

[1주차] 프로그래머스: SELECT 문제풀이

SQL/SQL 문제풀이 스터디

by dundunee 2022. 11. 3. 17:37

본문

문제1. 프로그래머스 > SELECT > 과일로 만든 아이스크림 고르기

SELECT F.FLAVOR AS FLAVOR
FROM FIRST_HALF F
INNER JOIN ICECREAM_INFO I ON F.FLAVOR = I.FLAVOR
WHERE F.TOTAL_ORDER > 3000 AND I.INGREDIENT_TYPE = 'fruit_based'
ORDER BY F.TOTAL_ORDER DESC

 

문제2. 프로그래머스 > SELECT > 12세 이하인 여자환자 목록 출력하기

SELECT PT_NAME,
       PT_NO,
       GEND_CD,
       AGE,
       CASE WHEN TLNO IS NULL THEN 'NONE'
            ELSE TLNO
       END AS TLNO
FROM PATIENT
WHERE AGE <= 12 AND GEND_CD = "W"
ORDER BY AGE DESC, PT_NAME

  • SELECT 절에 CASE WHEN문 쓰기: 해당 조건에 대해 다른 컬럼값을 사용하고 싶을 때

문제3. 프로그래머스 > SELECT > 흉부외과 또는 일반의사 목록 출력하기: DATE_FORMAT(변경하고 싶은 날짜, 변경하고 싶은 타입)

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

 

문제4. 프로그래머스 > SELECT > 3월에 태어난 여성 회원 목록 출력하기

SELECT MEMBER_ID,
       MEMBER_NAME,
       GENDER,
       DATE_FORMAT(DATE_OF_BIRTH, "%Y-%m-%d") AS DATE_OF_BIRTH
FROM MEMBER_PROFILE
where MONTH(DATE_FORMAT(DATE_OF_BIRTH, "%Y-%m-%d")) = 3 AND
      GENDER = "W" AND
      TLNO IS NOT NULL
ORDER BY MEMBER_ID

  • ‘YYYY-MM-DD’타입의 날짜 데이터에서 연/월/일 추출하기
    • 연: YEAR()
    • 월: MONTH()
    • 일: DAYOFMONTH()

문제5. 프로그래머스 > SELECT > 강원도에 위치한 생산공장 목록 출력하기

SELECT FACTORY_ID,
       FACTORY_NAME,
       ADDRESS
FROM FOOD_FACTORY
WHERE LEFT(TLNO, 3) = 033
ORDER BY FACTORY_ID

  • 문자열 인덱싱: SUBSTR(), LEFT(), RIEGT()

문제6. 프로그래머스 > SELECT > 서울에 위치한 식당 목록 출력하기

SELECT RI.REST_ID,
       RI.REST_NAME,
       RI.FOOD_TYPE,
       RI.FAVORITES,
       RI.ADDRESS,
       ROUND(AVG(RR.REVIEW_SCORE),2) AS SCORE
FROM REST_INFO RI
INNER JOIN REST_REVIEW RR ON RI.REST_ID = RR.REST_ID
WHERE LEFT(RI.ADDRESS,2) = '서울'
GROUP BY RI.REST_ID, RI.REST_NAME, RI.FOOD_TYPE, RI.FAVORITES, RI.ADDRESS
ORDER BY SCORE DESC, RI.FAVORITES DESC

문제7. 프로그래머스 > SELECT > 인기있는 아이스크림

SELECT FLAVOR
FROM FIRST_HALF
ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID

문제8. 프로그래머스 > SELECT > 재구매가 일어난 상품과 회원 리스트 구하기

SELECT USER_ID,
       PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(*) > 1
ORDER BY USER_ID, PRODUCT_ID DESC

문제9. 프로그래머스 > SELECT > 모든 레코드 조회하기

SELECT *
FROM ANIMAL_INS
ORDER BY ANIMAL_ID

 

문제10. 프로그래머스 > SELECT > 역순정렬하기

SELECT NAME,
       DATETIME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC

관련글 더보기