SQL - 프로그래머스 Lv1

수현·2023년 11월 11일
0

Coding Test

목록 보기
12/14

📕 이름이 있는 동물의 아이디

프로그래머스 이름이 있는 동물의 아이디

문제

코드

SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME is not null

📕 여러 기준으로 정렬하기

프로그래머스 여러 기준으로 정렬하기

문제

코드

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

📕 아픈 동물 찾기

프로그래머스 아픈 동물 찾기

문제

코드

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION = "Sick"
ORDER BY ANIMAL_ID

📕 어린 동물 찾기

프로그래머스 어린 동물 찾기

문제

코드

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION != "Aged"
ORDER BY ANIMAL_ID

📕 역순 정렬하기

프로그래머스 역순 정렬하기

문제

코드

SELECT NAME, DATETIME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC

📕 상위 n개 레코드

프로그래머스 상위 n개 레코드

문제

코드

SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1

📘 Limit

  • MySQL 데이터베이스 Select 문장에서 Limit 키워드를 사용하면 테이블 데이터 조회 시 한계를 지정할 수 있다.

  • 행 데이터 10개만 조회하기

    • SELECT title, content, writer FROM board LIMIT 10;
  • 11번째 ~ 20번째 행 데이터 조회

    • SELECT title, content, writer FROM board LIMIT 10, 10;
    • Offset 옵션을 이용하면, 가져오고자 하는 행 데이터의 시작 지점을 지정할 수 있다.
    • Offset 값은 0부터 시작하므로 첫 번째 행 데이터를 가리키는 값은 0 이다.

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

프로그래머스 나이 정보가 없는 회원수 구하기

문제

코드

SELECT COUNT(USER_ID) AS USERS
FROM USER_INFO
WHERE AGE IS NULL

📕 동물의 아이디와 이름

프로그래머스 동물의 아이디와 이름

문제

코드

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID

📕 가장 비싼 상품 구하기

프로그래머스 가장 비싼 상품 구하기

문제

코드

SELECT MAX(PRICE) AS MAX_PRICE
FROM PRODUCT

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

프로그래머스 경기도에 위치한 식품창고 목록 출력하기

문제

코드

SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, IFNULL(FREEZER_YN, "N") AS FREEZER_YN
FROM FOOD_WAREHOUSE
WHERE ADDRESS LIKE '경기도%'
ORDER BY WAREHOUSE_ID

📘 IFNULL, COALESCE

  • null 값 치환
    • IFNULL(컬럼, 0) 컬럼값이 null이면, 0을 넣는 함수
    • COALESCE(컬럼, 0)을 이용해서 null이면, 0을 넣는 함수

📘 LIKE %

  • 특정 문자로 시작하는 경우
    • 컬럼명 LIKE 특정문자% 사용
  • 여러 특정 문자로 시작하는 경우
    • 컬럼명 LIKE 'A%' OR 컬럼명 LIKE 'B%'
    • LEFT(컬럼, 1) IN ('A', 'B')

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

프로그래머스 강원도에 위치한 생산공장 목록 출력하기

문제

코드

SELECT FACTORY_ID, FACTORY_NAME, ADDRESS
FROM FOOD_FACTORY
WHERE ADDRESS LIKE '강원도%'
ORDER BY FACTORY_ID

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

프로그래머스 흉부외과 또는 일반외과 의사 목록 출력하기

문제

코드

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

📘 DATE_FORMAT

  • SELECT DATE_FORMAT('20000119', '%y%m%d')
    → 000119
  • SELECT DATE_FORMAT('20000119', '%Y.%m.%d')
    → 2000.01.19
  • SELECT DATE_FORMAT('20000119', '%Y/%m/%d')
    → 2000/01/19
  • SELECT DATE_FORMAT('20000119123000', '%Y.%m.%d %H:%i:%S')
    → 2000.01.19 12:30:00
  • SELECT DATE_FORMAT('20000119123000', '%Y.%m.%d %H:%i:%S %W')
    → 2000.01.19 12:30:00 Wednesday

📕 이름이 없는 동물의 아이디

프로그래머스 이름이 없는 동물의 아이디

문제

코드

SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL

📕 조건에 맞는 회원수 구하기

프로그래머스 조건에 맞는 회원수 구하기

문제

코드

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

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

프로그래머스 12세 이하인 여자 환자 목록 출력하기

문제

코드

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 ASC

📕 인기있는 아이스크림

프로그래머스 인기있는 아이스크림

문제

코드

SELECT FLAVOR
FROM FIRST_HALF
ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID

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

프로그래머스 조건에 맞는 도서 리스트 출력하기

문제

코드

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

📕 평균 일일 대여 요금 구하기

프로그래머스 평균 일일 대여 요금 구하기

문제

코드

SELECT ROUND(AVG(DAILY_FEE)) AS AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = "SUV"

📕 모든 레코드 조회하기

프로그래머스 모든 레코드 조회하기

문제

코드

SELECT *
FROM ANIMAL_INS
ORDER BY ANIMAL_ID

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

프로그래머스 과일로 만든 아이스크림 고르기

문제

코드

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

📕 최댓값 구하기

프로그래머스 최댓값 구하기

문제

코드

SELECT MAX(DATETIME) AS "시간"
FROM ANIMAL_INS

📕 특정 옵션이 포함된 자동차 리스트 구하기

프로그래머스 특정 옵션이 포함된 자동차 리스트 구하기

문제

코드

SELECT *
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") AS START_DATE, 
    DATE_FORMAT(END_DATE, "%Y-%m-%d") AS END_DATE, 
    IF(DATEDIFF(END_DATE, START_DATE) >= 29, "장기 대여", "단기 대여") AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE LIKE "2022-09%"
ORDER BY HISTORY_ID DESC

📘 DATEDIFF

  • DATEDIFF( [date1], [date2] )
    • date1에서 date2을 뺀 날짜를 리턴합니다.
    • 이때, 1월 30일에서 1월 1일을 뺐을 때 그 값이 29가 나오므로 30일 이상을 조회하려면 DATEDIFF의 값이 29보다 크거나 같은 것을 선택

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

프로그래머스 조건에 부합하는 중고거래 댓글 조회하기

문제

코드

SELECT B.TITLE, R.BOARD_ID, R.REPLY_ID, R.WRITER_ID, R.CONTENTS, 
    DATE_FORMAT(R.CREATED_DATE, "%Y-%m-%d") AS CRAETED_DATE
FROM USED_GOODS_BOARD AS B INNER JOIN USED_GOODS_REPLY AS R
ON B.BOARD_ID = R.BOARD_ID
WHERE SUBSTR(B.CREATED_DATE,1,7) = '2022-10'
ORDER BY R.CREATED_DATE ASC, TITLE ASC

📖출처📖

프로그래머스 SQL

profile
Notion으로 이동 (https://24tngus.notion.site/3a6883f0f47041fe8045ef330a147da3?v=973a0b5ec78a4462bac8010e3b4cd5c0&pvs=4)

0개의 댓글