반응형 SQL61 [프로그래머스 SQL] Lv. 1 최댓값 구하기 ※ 문제 ※ 코드-- 코드를 입력하세요SELECT DATETIMEFROM (SELECT DATETIME FROM ANIMAL_INS ORDER BY DATETIME DESC)WHERE ROWNUM = 1; ※ 풀이우선 DATETIME을 기준으로 내림차순 정렬을 해줍니다. 그래야 1번째 값이 가장 최근 값이 되겠죠? (시간은 뒤로 갈수록 더 큰값이 되므로) 그리고 정렬한 테이블에서 바로 ROWNUM을 쓸 순 없습니다. ORDER BY 절은 가장 마지막 후순위이기 때문에 정렬보다 ROWNUM 연산이 먼저 이루어지기 때문입니다. # FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY 그러므로 정렬을 먼저 실.. 2025. 2. 27. [프로그래머스 SQL] Lv. 1 Python 개발자 찾기 ※ 문제 ※ 코드-- 코드를 작성해주세요SELECT ID, EMAIL, FIRST_NAME, LAST_NAMEFROM DEVELOPER_INFOSWHERE 'Python' IN (SKILL_1, SKILL_2, SKILL_3)ORDER BY ID; ※ 풀이IN Keyword를 사용하여 풀어주면 됩니다. 2025. 2. 27. [프로그래머스 SQL] Lv. 1 평균 일일 대여 요금 구하기 ※ 문제 ※ 코드-- 코드를 입력하세요SELECT ROUND(AVG(DAILY_FEE)) AS AVERAGE_FEEFROM CAR_RENTAL_COMPANY_CARWHERE CAR_TYPE = 'SUV'; ※ 풀이단순한 평균, 반올림 문제였습니다.이유는 모르겠는데 프로그래머스 텍스트 에디터 상에서는 ROUND가 글자색이 보라색 처리가 안되네요... 흠 2025. 2. 27. [프로그래머스 SQL] Lv. 1 잔챙이 잡은 수 구하기 ※ 문제 ※ 코드-- 코드를 작성해주세요SELECT COUNT(*) AS FISH_COUNTFROM FISH_INFOWHERE LENGTH IS NULL; ※ 풀이COUNT 함수만 사용하면 되는 간단한 문제였습니다. 2025. 2. 27. [프로그래머스 SQL] Lv. 1 모든 레코드 조회하기 ※ 문제 ※ 코드-- 코드를 입력하세요SELECT *FROM ANIMAL_INSORDER BY ANIMAL_ID; ※ 풀이그냥 단순한 정렬 문제입니다.\ 그런데 생각해보니 모든 속성을 출력할 땐 그냥 *를 입력하면 됐는데 앞에 문제 중에 하나하나 다 입력한 문제가 있었던 듯한.... ^^;; 2025. 2. 26. [프로그래머스 SQL] Lv. 1 가장 큰 물고기 10마리 구하기 ※ 문제 ※ 코드-- 코드를 작성해주세요SELECT ID, LENGTHFROM FISH_INFOORDER BY IFNULL(LENGTH, 10) DESC, IDLIMIT 10; ※ 풀이우선 LENGTH가 NULLABLE이므로 정렬을 할 때, IFNULL을 통해 10으로 값을 대체해준 뒤 정렬을 진행합니다.(만약 NULL 값을 대체하지 않고 정렬을 한다면 NULL 값을 가진 Row는 자동으로 맨 밑으로 밀려납니다.) 이후 상위 10개의 Row만 출력해주면 되는데 MySQL에서는 LINIT이라는 키워드를 사용하여 원하는 행만큼 가져올 수 있습니다. 키워드가 하나인 경우 상위 N개, 2개인 경우 N+1부터 M개가 됩니다.예시)LIMIT 11 => 상위 11개LIMIT 10.. 2025. 2. 26. [프로그래머스 SQL] Lv. 1 조거에 맞는 도서 리스트 출력하기 ※ 문제 ※ 코드-- 코드를 입력하세요SELECT BOOK_ID, TO_CHAR(PUBLISHED_DATE, 'YYYY-MM-DD')FROM BOOKWHERE EXTRACT(YEAR FROM PUBLISHED_DATE) = 2021 AND CATEGORY = '인문'ORDER BY PUBLISHED_DATE; ※ 풀이두가지 조건을 만족시켜주는 Row를 찾으면 됩니다.추출 함수를 통해 YEAR가 2021에 해당하는 것을 찾아준 후, CATEGORY가 '인문'인 값을 찾습니다.마지막으로 정렬과 포맷 수정을 해서 실행시켜주면 됩니다. 2025. 2. 26. [프로그래머스 SQL] Lv. 1 잡은 물고기의 평균 길이 구하기 ※ 문제 ※ 코드-- 코드를 작성해주세요SELECT ROUND(AVG(IFNULL(LENGTH, 10)), 2) AS AVERAGE_LENGTHFROM FISH_INFO ※ 풀이우선 MySQL 문법으로 작성되었음을 알려드립니다.먼저 IFNULL 함수를 사용하여(ORACLE이라면 NVL) NULL 값을 10으로 치환해줍니다.이후 AVG 함수를 통해 평균을 구하고 ROUND를 통해 소수점 셋째 자리에서 반올림을 해줍니다.이후 ALIAS 키워드를 통해 AVERAGE_LENGTH로 이름을 변경하여 마무리합니다. 2025. 2. 26. [프로그래머스 SQL] Lv. 1 한 해에 잡은 물고기 수 구하기 ※ 문제 ※ 코드-- 코드를 작성해주세요SELECT COUNT(*) AS FISH_COUNTFROM FISH_INFOWHERE EXTRACT(YEAR FROM TIME) = 2021; ※ 풀이추출 함수를 통해 연도 정보만 뽑아낸 뒤 2021년 필터링을 수행해줍니다.이후 COUNT(*)를 통해 개수를 세고 끝냅니다.문제에 LENGTH에 대한 설명이 있었는데 이건 사용이 안되는데 왜 들어간건지 모르겠네요..? 참고로 해당 문제는 MySQL밖에 안되기 때문에 마지막 EXTRACT 부분은YEAR(TIME) = 2021과 같이 변경하여도 문제없이 실행됩니다.다만 저는 ORACLE 문법을 기준으로 공부 중이라 저렇게 코드를 작성하였습니다. 2025. 2. 26. 이전 1 2 3 4 5 6 7 다음 반응형