분류 전체보기
-
* [Level 3] 없어진 기록 찾기: JOIN[프로그래머스] SQL 고득점 Kit/JOIN 2022. 10. 10. 22:37
[문제] 천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요. ANIMAL_OUTS에 기록이 있으나 ANIMLA_INS에는 기록이 없으므로 LEFT JOIN 하였을 때 NULL 값 가진 행을 골라내면 된다! SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_OUTS AS O LEFT JOIN ANIMAL_INS AS I ON O.ANIMAL_ID = I.ANIMAL_ID WHERE I.DATETIME IS NULL ORDER BY O.ANIMAL_ID JOIN 종류 JOIN LEFT JOIN 왼쪽 테이블을 중심으로 오른쪽의 테이블 매치 왼쪽 테이블의 한 개의 레코드에 ..
-
* [Level 2] DATETIME에서 DATE로 형 변환: DATE_FORMAT[프로그래머스] SQL 고득점 Kit/String, Date 2022. 10. 9. 00:45
[ 문제] ANIMAL_INS 테이블에 등록된 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜1를 조회하는 SQL문을 작성해주세요. 이때 결과는 아이디 순으로 조회해야 합니다. 형식 변환: 2018-01-22 14:32:00 → 2018-01-22 DATE_FORMAT 사용 SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS '날짜' FROM ANIMAL_INS ORDER BY ANIMAL_ID Date 형식 %Y : 4자리 연도 %y : 2자리 연도 %m : 2자리 월 %d : 2자리 일 %H : 24시간 형식 시(00-23) %h : 12시간 형식 시(01-12) %i : 2자리 분(0-59) %S, %s : 2자리 초(0-59)
-
* [Level 3] 오랜 기간 보호한 동물(2): DATEDIFF, LIMIT[프로그래머스] SQL 고득점 Kit/String, Date 2022. 10. 9. 00:32
[문제] 입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다. SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_INS AS I, ANIMAL_OUTS AS O WHERE I.ANIMAL_ID = O.ANIMAL_ID ORDER BY DATEDIFF(O.DATETIME, I.DATETIME) DESC LIMIT 2 DATEDIFF 날짜 차이 계산 SELECT DATEDIFF('구분자','Start_Date','End_Date') LIMIT N: 순서대로 N개만 출력
-
* [Level 2] 중성화 여부 파악하기: REGEXP[프로그래머스] SQL 고득점 Kit/String, Date 2022. 10. 8. 23:53
[문제] 보호소의 동물이 중성화되었는지 아닌지 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시해주세요. 'Neutered' 또는 'Spayed'라는 단어가 들어있다는 조건을 OR로 표현한 코드 SELECT ANIMAL_ID, NAME, CASE WHEN SEX_UPON_INTAKE LIKE '%Neutered%' OR SEX_UPON_INTAKE LIKE '%Spayed%' THEN 'O' ELSE 'X' END AS '중성화' FROM ANIMAL_INS LIKE 여러 개 ..
-
* [Level 3] 조건별로 분류하여 주문상태 출력하기: CASE[프로그래머스] SQL 고득점 Kit/String, Date 2022. 10. 8. 23:37
[문제] FOOD_ORDER 테이블에서 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 출고여부를 조회하는 SQL문을 작성해주세요. 출고여부는 5월 1일까지 출고완료로 이 후 날짜는 출고대기로 미정이면 출고미정으로 출력해주시고, 결과는 주문 ID를 기준으로 오름차순 정렬해주세요. SELECT ORDER_ID, PRODUCT_ID, OUT_DATE, CASE WHEN OUT_DATE '2022/05/01' THEN '출고대기' ELSE '출고미정' END AS "출고여부" FROM FOOD_ORDER ORDER BY ORDER_ID
-
* [Level 4] 식품분류별 가장 비싼 식품의 정보 조회하기[프로그래머스] SQL 고득점 Kit/GROUP BY 2022. 10. 8. 23:10
[문제] FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요. SELECT A.CATEGORY, A.PRICE AS MAX_PRICE, A.PRODUCT_NAME FROM FOOD_PRODUCT AS A JOIN (SELECT CATEGORY, MAX(PRICE) AS PRICE FROM FOOD_PRODUCT WHERE CATEGORY IN ('과자','국','김치','식용유') GROUP BY CATEGORY ) T ON T.CATEGORY = A.CATEGORY AND T.PRICE = A.PR..
-
* [Level 3] 즐겨찾기가 가장 많은 식당 정보 출력하기[프로그래머스] SQL 고득점 Kit/GROUP BY 2022. 10. 8. 23:04
[문제] REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요. SELECT A.FOOD_TYPE, REST_ID, REST_NAME, A.FAVORITES FROM REST_INFO AS A JOIN (SELECT FOOD_TYPE, MAX(FAVORITES) AS FAVORITES FROM REST_INFO GROUP BY FOOD_TYPE ORDER BY FOOD_TYPE DESC) T ON T.FOOD_TYPE = A.FOOD_TYPE AND T.FAVORITES = A.FAVORITES ORDER BY A.FOOD_TYPE DESC
-
* [Level 2] 입양 시각 구하기(1): 날짜 데이터 출력[프로그래머스] SQL 고득점 Kit/GROUP BY 2022. 10. 8. 20:59
[문제] 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. SELECT HOUR(DATETIME) HOUR, COUNT(DATETIME) COUNT FROM ANIMAL_OUTS GROUP BY HOUR(DATETIME) HAVING HOUR >= 9 AND HOUR