일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 교환학생
- 제네바
- tableau
- 제네바주거
- 교환학생주거
- 데이터 포트폴리오
- 아셈듀오 선정
- 텍스트분석 시각화
- 아셈듀오
- 테이블계산
- 교환학생 장학금
- CRM
- 리뷰분석
- 태블로 포트폴리오
- 파이썬
- 제네바경영대학교
- 두잇알고리즘코딩테스트
- 공모전후기
- 아셈듀오 후기
- 데이터공모전
- 패스트캠퍼스 #자료구조 #코딩테스트 #배열
- 키워드시각화
- 미래에셋 공모전
- MairaDB
- 제네바기숙사
- HEG
- 태블로
- 데이터 분석 포트폴리오
- 무신사 데이터분석
- 데이터 시각화 포트폴리오
- Today
- Total
민듀키티
프로그래머스 SQL 코딩테스트 (LEVEL 3 - 2) 본문
🔴 문제 1 : 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/151139
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 주의해야 할 것 : 나 자꾸 서브쿼리 안써서 해결할려고 함,,, 왜냐 칼럼 정의가 복잡해지거든 ,,
이거 안 풀려 ㅠㅠㅠ
내일 풀어야지
🔴 문제 2 : 카테고리 별 도서 판매량 집계하기
https://school.programmers.co.kr/learn/courses/30/lessons/144855
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
정답 )
SELECT CATEGORY, sum(b.SALES) as TOTAL_SALES
FROM BOOK as a, BOOK_SALES as b
WHERE a.BOOK_ID = b.BOOK_ID
and DATE_FORMAT(b.SALES_DATE,'%Y%m') = 202201
GROUP BY a.CATEGORY
ORDER BY a.CATEGORY
🔴 문제 3 : 즐겨찾기가 가장 많은 식당 정보 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/131123
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
정답 )
SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES
FROM (SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES,
RANK() over (partition by FOOD_TYPE order by FAVORITES desc) as rn
FROM REST_INFO ) as a
where a.rn = 1
order by FOOD_TYPE desc
- RNAK OVER 은 WHERE 절과 HAVING 절에 사용할 수 없음. 따라서 서브쿼리를 만들어서 진행
- mysql은 서브쿼리에 Alias을 주지 않으면 오류 발생 -> 그러나 오라클은 괜찮음
주요 함수 정리) 그룹별로 최댓값 혹은 최솟값 뽑기
- RANK() OVER (PARTITION BY 0000 ORDER BY 0000) : 1등이 2명이면 다음 순위는 3등
- DENSE_RANK() OVER (PARTITION BY 0000 ORDER BY 0000) : 각각의 행에 대한 일련의 번호
- ROW_NUMBER() OVER (PARTITION BY 0000 ORDER BY 0000) : 1등이 2명이어도 1등, 2등 매김
PARTITION BY는 필수가 아니지만, ORDER BY는 필수임
🔴 문제 4 : 조건별로 분류하여 주문상태 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/131113
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 주의해야 할 것 : OUT_DATE와 PRODUCT_DATE 칼럼 헷갈리지 않기
정답 )
SELECT ORDER_ID,PRODUCT_ID,DATE_FORMAT(OUT_DATE, "%Y-%m-%d") as OUT_DATE,
(CASE WHEN DATE_FORMAT(OUT_DATE, "%Y%m%d") <= 20220501 then "출고완료"
when DATE_FORMAT(OUT_DATE, "%Y%m%d") > 20220501 then "출고대기"
else "출고미정" end) as 출고여부
FROM FOOD_ORDER
ORDER BY ORDER_ID
🔴 문제 5 : 헤비 유저가 소유한 장소
https://school.programmers.co.kr/learn/courses/30/lessons/77487
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 주의해야 할 것 : GROUP BY를 사용하면 GROUP으로 묶어져서 칼럼이 한 개 밖에 안나와 ,,, 그래서 WHERE절에 IN 조건을 사용한다 !
정답 )
SELECT *
FROM PLACES
WHERE HOST_ID IN (SELECT HOST_ID
FROM PLACES
GROUP BY HOST_ID
HAVING COUNT(*) >= 2)
ORDER BY ID;
'Coding Test > SQL' 카테고리의 다른 글
프로그래머스 SQL 코딩테스트 (LEVEL 4 - 1) (0) | 2023.04.19 |
---|---|
프로그래머스 SQL 코딩테스트 (LEVEL 3 - 3) (0) | 2023.04.17 |
프로그래머스 SQL 코딩테스트 (LEVEL 3 - 1) (1) | 2023.04.11 |
프로그래머스 SQL 코딩테스트 (LEVEL 2 - 4) (0) | 2023.04.11 |
프로그래머스 SQL 코딩테스트 (LEVEL 2 - 3) (1) | 2023.04.11 |