일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 교환학생 장학금
- 공모전후기
- 키워드시각화
- 무신사 데이터분석
- MairaDB
- 제네바주거
- 미래에셋 공모전
- 제네바경영대학교
- HEG
- CRM
- 태블로 포트폴리오
- 리뷰분석
- 데이터 시각화 포트폴리오
- 테이블계산
- 파이썬
- 데이터 분석 포트폴리오
- 아셈듀오 선정
- 텍스트분석 시각화
- 패스트캠퍼스 #자료구조 #코딩테스트 #배열
- 데이터공모전
- 교환학생주거
- 제네바
- 아셈듀오 후기
- 아셈듀오
- 교환학생
- 데이터 포트폴리오
- 두잇알고리즘코딩테스트
- 제네바기숙사
- 태블로
- tableau
- Today
- Total
민듀키티
[240604] SQL 코딩테스트 본문
1. 보호소에서 중성화한 동물
https://school.programmers.co.kr/learn/courses/30/lessons/59045
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT a.ANIMAL_ID, a.ANIMAL_TYPE, a.NAME
FROM (SELECT ANIMAL_ID, ANIMAL_TYPE, NAME
FROM ANIMAL_INS
WHERE SEX_UPON_INTAKE LIKE 'Intact%') as a
JOIN
(SELECT ANIMAL_ID, ANIMAL_TYPE, NAME
FROM ANIMAL_OUTS
WHERE SEX_UPON_OUTCOME LIKE 'Spayed%' or SEX_UPON_OUTCOME LIKE 'Neutered%') as b
ON a.ANIMAL_ID = b.ANIMAL_ID
ORDER BY a.ANIMAL_ID
2. 식품분류별 가장 비싼 식품의 정보 조회하기
https://school.programmers.co.kr/learn/courses/30/lessons/131116
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT CATEGORY, PRICE, PRODUCT_NAME
FROM FOOD_PRODUCT
WHERE (CATEGORY, PRICE) IN
(SELECT CATEGORY, MAX(PRICE) as 'MAX_PRICE'
FROM FOOD_PRODUCT
WHERE CATEGORY IN ('과자', '국', '김치', '식용유')
GROUP BY CATEGORY)
ORDER BY PRICE desc
3. 5월 식품들의 총매출 조회하기
https://school.programmers.co.kr/learn/courses/30/lessons/131117
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT a.PRODUCT_ID, b.PRODUCT_NAME, a.TOTAL_AMOUT * b.PRICE as 'TOTAL_SALES'
FROM (SELECT PRODUCT_ID, SUM(AMOUNT) as 'TOTAL_AMOUT'
FROM FOOD_ORDER
WHERE DATE_FORMAT(PRODUCE_DATE, "%Y-%m") = '2022-05'
GROUP BY PRODUCT_ID) as a JOIN FOOD_PRODUCT as b
ON a.PRODUCT_ID = b.PRODUCT_ID
ORDER BY TOTAL_SALES desc, a.PRODUCT_ID asc
4. 취소되지 않은 진로 예약 조회하기
https://school.programmers.co.kr/learn/courses/30/lessons/132204
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT a.APNT_NO,b.PT_NAME, b.PT_NO, a.MCDP_CD, c.DR_NAME, a.APNT_YMD
FROM (SELECT APNT_NO, PT_NO, APNT_YMD, MDDR_ID, MCDP_CD
FROM APPOINTMENT
WHERE DATE_FORMAT(APNT_YMD, "%Y-%m-%d") = '2022-04-13'
AND APNT_CNCL_YN = 'N' AND MCDP_CD = 'CS') as a
LEFT JOIN PATIENT as b ON a.PT_NO = b.PT_NO
LEFT JOIN DOCTOR as c on a.MDDR_ID = c.DR_ID
ORDER BY a.APNT_YMD
5. 서울에 위치한 식당 목록 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/131118
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT a.REST_ID, a.REST_NAME, a.FOOD_TYPE, a.FAVORITES, a.ADDRESS, b.SCORE
FROM (SELECT REST_ID, REST_NAME, FOOD_TYPE, FAVORITES, ADDRESS
FROM REST_INFO
WHERE ADDRESS LIKE "서울%") as a JOIN
(SELECT REST_ID, ROUND(AVG(REVIEW_SCORE),2) as 'SCORE'
FROM REST_REVIEW GROUP BY REST_ID) as b
ON a.REST_ID = b.REST_ID
ORDER BY b.SCORE desc, a.FAVORITES desc
6. 년, 월, 성별 별 상품 구매 회원 수 구하기
https://school.programmers.co.kr/learn/courses/30/lessons/131532
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT YEAR(a.SALES_DATE) as 'YEAR', MONTH(SALES_DATE) as 'MONTH', b.GENDER,
COUNT(DISTINCT(a.USER_ID)) as 'USERS'
FROM ONLINE_SALE as a JOIN
(SELECT * FROM USER_INFO WHERE GENDER IS NOT NULL) as b
ON a.USER_ID = b.USER_ID
GROUP BY YEAR(a.SALES_DATE), MONTH(SALES_DATE), b.GENDER
ORDER BY YEAR, MONTH, GENDER
7. 저자 별 카테고리 별 매출액 집계하기
https://school.programmers.co.kr/learn/courses/30/lessons/144856
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT b.author_id, c.AUTHOR_NAME, b.category,
SUM(a.sales * b.price) as 'TOTAL_SALES'
FROM (SELECT *
FROM BOOK_SALES
WHERE DATE_FORMAT(SALES_DATE, "%Y-%m") = '2022-01') as a
LEFT JOIN BOOK as b ON a.book_id = b.book_id
LEFT JOIN AUTHOR as c ON b.AUTHOR_ID = c.AUTHOR_ID
GROUP BY b.author_id, b.category
ORDER BY b.author_id, b.category desc
8. 우유와 요거트가 담긴 장바구니
https://school.programmers.co.kr/learn/courses/30/lessons/62284
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT CART_ID
FROM CART_PRODUCTS
WHERE NAME IN ('Milk', 'Yogurt')
GROUP BY CART_ID
HAVING COUNT(DISTINCT NAME ) >= 2
ORDER BY CART_ID
9. 주문량이 많은 아이스크림들 조회하기
https://school.programmers.co.kr/learn/courses/30/lessons/133027
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT FLAVOR
FROM (SELECT *
FROM FIRST_HALF
UNION ALL
SELECT *
FROM JULY) as a
GROUP BY FLAVOR
ORDER BY SUM(TOTAL_ORDER) desc
limit 3
10. 그룹별 조건에 맞는 식당 목록 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/131124
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
WITH MAX_REVIEW AS (SELECT MAX(a.review_count) as 'max_review'
FROM (SELECT COUNT(*) as 'review_count'
FROM REST_REVIEW
GROUP BY MEMBER_ID) as a)
SELECT c.MEMBER_NAME, d.REVIEW_TEXT,
DATE_FORMAT(REVIEW_DATE, "%Y-%m-%d") as 'REVIEW_DATE'
FROM (SELECT MEMBER_ID
FROM REST_REVIEW
GROUP BY MEMBER_ID
HAVING COUNT(*) IN (SELECT max_review FROM MAX_REVIEW)) as b
LEFT JOIN MEMBER_PROFILE as c ON b.MEMBER_ID = c.MEMBER_ID
LEFT JOIN REST_REVIEW as d ON d.MEMBER_ID = b.MEMBER_ID
ORDER BY REVIEW_DATE, d.REVIEW_TEXT
11. 연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기
https://school.programmers.co.kr/learn/courses/30/lessons/284528
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
SELECT a.EMP_NO, b.EMP_NAME,
CASE WHEN avg_score >= 96 then 'S'
WHEN avg_score < 96 and avg_score >= 90 then 'A'
WHEN avg_score < 90 and avg_score >= 80 then 'B'
ELSE 'C' END AS 'GRADE',
CASE WHEN avg_score >= 96 then b.SAL * 0.2
WHEN avg_score < 96 and avg_score >= 90 then b.SAL * 0.15
WHEN avg_score < 90 and avg_score >= 80 then b.SAL * 0.1
ELSE 0 END AS 'BONUS'
FROM (SELECT EMP_NO, AVG(SCORE) as 'avg_score'
FROM HR_GRADE
GROUP BY EMP_NO) as a LEFT JOIN HR_EMPLOYEES as b ON a.EMP_NO = b.EMP_NO
ORDER BY EMP_NO
12. 오프라인 / 온라인 판매 데이터 통합하기
- 결측값 처리할 때 => 'NULL' 아니고 NULL 이라고 처리해줘야 함
https://school.programmers.co.kr/learn/courses/30/lessons/131537
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
WITH ONLINE_DATA AS (SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') as 'SALES_DATE',
PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM ONLINE_SALE
WHERE DATE_FORMAT(SALES_DATE, "%Y-%m") = '2022-03'),
OFFLINE_DATA AS (SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') as 'SALES_DATE',
PRODUCT_ID, NULL as 'USER_ID', SALES_AMOUNT
FROM OFFLINE_SALE
WHERE DATE_FORMAT(SALES_DATE, "%Y-%m") = '2022-03')
SELECT *
FROM (SELECT *
FROM ONLINE_DATA
UNION ALL
SELECT *
FROM OFFLINE_DATA) as a
ORDER BY a.SALES_DATE, a.PRODUCT_ID, a.USER_ID
13. 입양 시각 구하기(2)
https://school.programmers.co.kr/learn/courses/30/lessons/59413
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
WITH RECURSIVE q AS
(
SELECT 0 AS num
UNION ALL
SELECT num + 1
FROM q
WHERE num <= 22
)
SELECT q.num as 'HOUR', IF (a.COUNT is null, 0, a.COUNT) as 'COUNT'
FROM q LEFT JOIN (SELECT HOUR(DATETIME) as 'num', COUNT(*) as 'COUNT'
FROM ANIMAL_OUTS
GROUP BY HOUR(DATETIME)) as a
ON q.num = a.num
ORDER BY q.num
'Coding Test > SQL' 카테고리의 다른 글
[240603] 코딩테스트 문제풀이 (0) | 2024.06.03 |
---|---|
[240602] SQL 코딩테스트 문제풀이 (0) | 2024.06.02 |
[240601] SQL 코딩테스트 문제풀이 (0) | 2024.06.01 |
[240531] SQL 코딩테스트 문제풀이 (0) | 2024.05.31 |
[취준기록] 코딩테스트에 자주쓰이는 코드 정리 (0) | 2024.02.25 |