
문제 https://school.programmers.co.kr/learn/courses/30/lessons/131120 노트 날짜 포맷을 변환하여 출력하는 방법 오라클 MySQL |포맷문자|설명|포맷문자|설명| |-|-|-|-| |%Y|년도(2024)|%y|년도(24)| |%M|월(January)|%m|월(01)| |%b...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/132203 노트 단일 항목 일치 여부 : = 사용 다중 항목 일치 여부 : IN 사용 ORDER BY 오름차순 : ASC (Default) 내림차순 : DESC 위와 같이 작성할 경우 HIRE_YMD에 대해 내림차순 정렬하다가 같...

문제 https://school.programmers.co.kr/learn/courses/30/parts/17042 노트 반올림 ROUND(소수값, 반올림할 자리) 반올림할 자리가 0이면 소수 첫째 자리에서 반올림 1,2,3... : 소수 둘째, 셋째, 넷째 자리... 에서 반올림 -1,-2,-3... : 정수 1의자리, 10...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/132201 노트 NULL 처리 공통 COALESCE(EXPR1, EXPR2, EXPR3...) : EXPR1이 NULL이 아니면 EXPR1, NULL이면 EXPR2, EXPR2가 NULL이 아니면 EXPR2, EXPR2가 NULL이...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/164673 노트 두 가지 포인트가 있는 문제였다. DATE_FORMAT()을 통해 '2022년 10월'에 입력한 게시글을 추출하는것 JOIN을 통해 '게시글ID'로 글에 대한 정보와 댓글 목록을 조회하는 것 DATE_FORMAT()의 경우...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/144853 노트 앞선 문제와 같이 DATE_FORMAT()을 이용해 년도 부분만 '2021'로 조회하면 된다. 출판일 기준 오름차순 정답 더 좋은 해결방법이 있다면 언제든 댓글로 알려주세요 🤗

문제 https://school.programmers.co.kr/learn/courses/30/lessons/133025 노트 FIRSTHALF 테이블과 ICECREAMINFO 테이블에 대해 FLAVOR 값이 같은 레코드를 JOIN 한다. 그 중 주성분INCREAMINFO.INGREDIENTTYPE이 과일 이고 총 주문량FIRSTHALF.TOTALO...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/133024 노트 TOTALORDER에 대해서 내림차순하되, 같은 값에 대해선 SHIPMENTID에 대해 오름차순 정답 더 좋은 해결방법이 있다면 언제든 댓글로 알려주세요 🤗

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131118 노트 일일 리뷰의 평균 점수를 소수 셋째 자리에서 반올림하여, 출력은 SCORE 컬럼으로 해야한다. WHERE 절에 ADDESS 가 서울% 인 것으로 조건을 걸어도 정답이 나오지만, 그룹화한 뒤에 조건을 거는 HAVING 에서 처...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131536 노트 재구매가 일어났다는 것은 다음 두 개가 한 묶음으로 다른 날짜에 나타나는 경우다. 같은 유저 같은 물건 따라서 (유저, 물건)을 그룹하여 조회하되, COUNT(*) 가 1보다 큰 경우만 조회하면 된다. GROU...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/273711 노트 다음 업그레이드 아이템을 구해야하지만, 우리가 알 수 있는 것은 PARENTITEMID, 즉 어떤 아이템을 만들기 전 단계의 아이템 번호이다. 서브 쿼리를 이용해 다음 단계에 해당하는 아이템의 목록을 구하는 것을 먼저 진행했다...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/276034 노트 우선 Python과 C#에 해당하는 CODE 를 알아야한다. 이 부분이 서브 쿼리로 들어갈 것은 자명하다. 위 서브 쿼리의 결과(256, 1024인 것을 테이블만 봐도 알수는 있지만)를 SKILL_CODE 와 & 연산하여 1인...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/298517 노트 ORDER BY 와 LIMIT 의 활용법을 묻는 문제이다. MySQL 의 경우 의 순서를 따라 작성한다. 이 중 LIMIT 키워드 뒤에 오는 숫자로 출력할 값의 갯수를 조절할 수 있다. 예를 들어 LIMIT 10 은 10개...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/298518 노트 FISH_NAME 이 BASS거나 SNAPPER 인 것들의 갯수를 출력해야한다. FISH_INFO 테이블에는 이름이 아닌 타입으로 정의되어 있으므로, 서브 쿼리를 통해 해당 이름들의 타입 정보를 불러올 필요가 있다. 위 서브...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131537?language=mysql 노트 UNION 여러 개의 SELECT 문의 결과를 단일 결과로 연결할 때 사용 DISTINCT를 쓰지 않아도 합친 결과에서 중복되는 행은 하나만 표시 중복을 제거하는 것을 원하지 않는다면 ...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131697 노트 PRODUCT 테이블에서 판매중인 가장 높은 판매가를 출력해야한다. 두 가지 방법이 있을 것 같다. 집계 함수를 이용하는 방법 최대값을 구할 경우 MAX(컬럼) 을 사용하면 된다. 정렬 후 1개만 출력하는 방법 ORD...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/59415 노트 ANIMAL_INS 테이블에서 가장 최근에 들어온 동물을 구해야 한다. 가장 최근에 들어왔다는 것은 날짜가 가장 크다는 것과 동치이다. 이 문제도 앞선 문제와 같이 두 가지 방법이 있을 것 같다. 집계 함수를 이용하는 방법 ...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/59038 노트 ANIMAL_INS 테이블에서 가장 먼저 들어온 동물의 날짜를 출력해야한다. 이전 문제와는 반대 상황으로, 가장 먼저 들어온 날짜는 가장 작은 날짜와 동치이다. 이 문제도 두 가지 방법이 있을 것 같다. 집계 함수를 이용하는...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/59406 노트 COUNT() 집계 함수에 대한 문제이다. 이 문제에서는 전체 레코드를 조회해야하므로 COUNT(*)를 사용하면 된다. 하지만 간단하게 넘어갈 것이 아니고 COUNT() 에 대해 좀더 알아보려고한다. COUNT() 를 이용한 ...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/59408 노트 특정 컬럼에 대해 NULL은 집계 제외 중복은 하나로 취급 하여 갯수를 세는 문제이다. 이전 문제에서 COUNT()에 대해 다룰 때, COUNT(*) 은 NULL 을 포함한 모든 레코드 수를 리턴하고 COUNT(컬럼) 은 해...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/293259 노트 잡은 물고기의 평균 길이를 구하는 문제이다. 단, 길이가 10cm 이하는 NULL 로 표현되어있고 10cm 이하인 물고기는 길이를 10cm로 해서 평균을 구해야한다. 우선 10cm 이하는 NULL 이고 10cm 이하는 10c...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/273712 노트 운좋게 감각적으로(?) 맞은 문제이다. 그냥 넘어가면 안되니까 찾아봤다. 이 글을 읽는 사람이라면 십중팔구 PARENTITEMID 가 NULL 이랑 관련이 있어서 보는 사람일 것이다. 우선 최종적으로 업그레이드 된 아이템의 ...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/299305 노트 방금 올라온 따뜻한 문제다. 각 대장균 아이디를 기준으로 자식의 수를 구해야한다. 하지만 우리가 알고 있는 것은 부모의 정보이다. 따라서 부모의 정보를 기준으로 그룹화하여 COUNT(*)를 해야한다. 우선 부모의 정보를 기준...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/164668 노트 완료된 중고거래의 총금액이 70만원 이상 인 고객들의 ID, 닉네임, 총금액을 추출하는 문제이다. 완료된 중고거래의 총금액이 70만원 이상 인 고객들의 ID만 찾는다면 해당 ID를 통해 유저 테이블에서 나머지 정보를 빼올 수...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/284531 노트 노선 별 총 누계 거리 , 평균 역 사이 거리 를 계산해야 한다. 각 키워드 별로 정리하면 다음과 같다. 주의해야할 것은 ROUND(SUM()) 과 SUM(ROUND()) 를 바꿔쓰면 안된다. 합친 결과를 반올림하는 것과 반...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/284529 노트 HRDEPARTMENT 와 HREMPLOYEES 테이블을 이용해 부서별 평균 연봉을 조회하려 한다. 우선 부서별 평균 연봉을 계산한 테이블을 만들어보자. 그리고 이것을 DEPT_AVG 라는 테이블에 저장할 것이다. DEPT...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131530 노트 가격대를 기준으로 해당되는 상품의 수를 구해야한다. 0원 이상 ~ 10000원 미만 10000원 이상 ~ 20000원 미만 등 만의 자리를 기준으로 나눠야한다. FLOOR() 를 사용하면 되겠지만 FLOOR() 는 소수점을 ...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/144855 노트 복잡한 문제는 세부 단계로 쪼갠 뒤, 주어진 테이블에서 조합할 수 있는 정보를 통해 단계적으로 풀어나가면 할만하다. 우선 첫 번째 문제는 >2022년 1월의 카테고리 별 도서 판매량을 합산 이다. 카테고리 별로 나누기위해...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/276036 노트 Level 4 문제답게 조금 복잡한 문제다. 단계적으로 접근해보자. 우선 GRADE를 다음과 같이 나눠야한다. A : Front End 스킬과 Python 스킬을 함께 가지고 있는 개발자 B : C# 스킬을 가진 개발자 C ...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131532 노트 (년, 월, 성별) 을 기준으로 갯수를 세는 문제이다. 대충 느낌이 오겠지만 GROUP BY 와 집계 함수 COUNT() 를 쓰면 된다. 하지만 어떻게 써나가느냐가 문제다. 만약 1번 고객이 남성 이고 2022년 3월 에 2...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/59413 노트 몇 시에 입양이 가장 활발하는지를 찾는 문제이다. 시간대별로 COUNT()를 하면 다음과 같다. 하지만 위 코드는 정답이 아니다. 문제에서는 0시~23시 모두 출력하라고했기 때문이다. 만약 ANIMAL_OUTS 테이블에 17...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131116 노트 처음에 접할 때는 걍 껌같은 문제라고 보여서 이게 왜 Level4지? 했는데 함정이 있었다. 최댓값을 구할 때, 최댓값 자체는 쉽게 구할 수 있지만 최댓값을 포함하는 레코드는 간단히 구할 수 없었다. 처음에 생각했던 코드다....

문제 https://school.programmers.co.kr/learn/courses/30/lessons/59042 노트 ANIMAL_INS 테이블에는 보호소에 들어온 동물의 정보를 담는다. ANIMAL_OUTS 테이블에는 입양을 간 동물의 정보를 담는다. 문제에서 구하고자 하는 것은 입양을 간 기록은 있는데 보호소에 들어온 기록은 없는 동물의 ...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/133027 노트 특정 맛에 대해, (7월에 판매된 양 + 상반기에 판매된 양)이 큰 순서대로 3가지 맛을 출력하는 문제이다. JOIN의 특징과 테이블의 속성을 알면 쉽게 풀 수 있는 문제이다. 우선 7월에 판매된 양을 보자. 7월 테이블의 ...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/132204 노트 복잡해보이는 문제일수록 차근차근 해결해보자. 2022년 4월 13일에 취소되지 않은 CS 진료 예약 내역을 통해 환자 이름, 의사 이름 등을 구해야한다. 테이블의 구조를 먼저 살펴보면, 예약 내역 테이블과 환자 테이블은 PT...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/151138 노트 2022년 9월에 대여를 시작한 기록 중에서 30일 이상 대여는 '장기 대여', 아니면 '단기 대여'로 출력하는 문제이다. 간단하지만 날짜 관련 함수를 정리하고 함정을 하나 조심해야해서 남겨둔다. 날짜 간 차이 DATEDIF...

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131534 노트 대망의 마지막 문제다. SQL 고득점 Kit 중에 JOIN 영역이 제일 어렵다고 뜨고 그 중에서 레벨 5로 제일 높은 걸 마지막에 풀어보려고 남겨놨었다. 틈틈히 나머지 문제들도 정리는 하겠지만 일단 이 문제를 풀어보고자 한다....