프로그래밍/SQL

[프로그래머스] SQL 고득점 Kit - SELECT

히또아빠 2022. 11. 27. 16:14

프로그래머스에 있는 SQL 고득점 Kit  MySql 문제풀이 입니다. 코딩 테스트 연습겸 풀고있는 문제 풀이 공유합니다.

혹시 더 좋은 풀이 있으신 분은 공유해주시면 감사하겠습니다~~ 

https://programmers.co.kr/

과일로 만든 아이스크림 고르기
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 LIKE '%fr%'
ORDER BY TOTAL_ORDER DESC;
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 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;
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_OF_BIRTH) = 3 AND GENDER = 'W'
    AND TLNO IS NOT NULL
ORDER BY MEMBER_ID ASC;
강원도에 위치한 생산공장 목록 출력하기
SELECT FACTORY_ID,
    FACTORY_NAME,
    ADDRESS
FROM FOOD_FACTORY
WHERE ADDRESS LIKE "%강원도%"
ORDER BY FACTORY_ID ASC;
서울에 위치한 식당 목록 출력하기(진행중)
SELECT B.REVIEW_ID,
    A.REST_NAME,
    A.FOOD_TYPE,
    A.FAVORITES,
    A.ADDRESS,
    SUM(B.REVIEW_SCORE)
FROM REST_INFO A
LEFT JOIN REST_REVIEW B
ON A.REST_ID = B.REST_ID
GROUP BY A.REST_NAME;
인기있는 아이스크림
SELECT FLAVOR FROM FIRST_HALF
ORDER BY TOTAL_ORDER DESC, SHIPMENT_ID;
재구매가 일어난 상품과 회원 리스트 구하기
SELECT USER_ID, PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(*) >= 2
ORDER BY USER_ID ASC, PRODUCT_ID DESC;
모든 레코드 조회하기
SELECT ANIMAL_ID, 
    ANIMAL_TYPE, 
    DATETIME, 
    INTAKE_CONDITION, 
    NAME,
    SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
역순 정렬하기
SELECT NAME, 
    DATETIME 
FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC;
오프라인/온라인 판매 데이터 통합하기(진행중)
###
#SELECT DATE_FORMAT(SALES_DATE, "%Y-%m-%d") AS SALES_DATE,
 #   PRODUCT_ID,
  #  USER_ID,
   # SALES_AMOUNT
#FROM ONLINE_SALE

# UNION

SELECT DATE_FORMAT(SALES_DATE, "%Y-%m-%d") AS SALES_DATE,
    PRODUCT_ID,
    'NULL' AS USER_ID,
    SALES_AMOUNT
FROM OFFLINE_SALE

ORDER BY SALES_DATE ASC, PRODUCT_ID ASC, USER_ID ASC;
아픈 동물 찾기
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
    ANIMAL_ID,
    NAME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;
여러 기준으로 정렬
SELECT 
    ANIMAL_ID,
    NAME,
    DATETIME
FROM ANIMAL_INS
ORDER BY NAME, DATETIME DESC;
상위 n개 레코드
SELECT
    NAME
FROM ANIMAL_INS
ORDER BY DATETIME
LIMIT 1;
조건에 맞는 회원수 구하기
SELECT COUNT(USER_ID) AS USERS
FROM USER_INFO
WHERE YEAR(JOINED) = '2021' AND
    AGE <= 29 AND AGE >= 20;
300x250
반응형