가족이 코딩공부 할 때
나는 SQL 문제풀이를 해보는 것으로..
난 전공자 짬바 회사 근속 짬바가 있으니까 4레벨만 풀었다 사실 다 풀기엔 귀찮음
보호소에서 중성화한 동물
https://school.programmers.co.kr/learn/courses/30/lessons/59045
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
⚠ 답변을 보고 싶지 않은 사람을 위해서 가림.
쿼리를 보고 싶은 분만 [더보기]를 클릭하세요
SELECT
i.ANIMAL_ID, # 아이디
i.ANIMAL_TYPE, # 생물 종
i.NAME # 이름
FROM ANIMAL_INS i
INNER JOIN ANIMAL_OUTS o
ON i.ANIMAL_ID = o.ANIMAL_ID
and i.SEX_UPON_INTAKE like 'Intact%' # 들어올 땐 중성화하지 않음
and (o.SEX_UPON_OUTCOME like 'Spayed%'
or o.SEX_UPON_OUTCOME like 'Neutered%') #나갈 땐 중성화
/* 중성화를 거치지 않은 동물은 성별 및 중성화 여부에 Intact,
중성화를 거친 동물은 Spayed 또는 Neutered라고 표시되어있습니다.*/
ORDER BY i.ANIMAL_ID # id 순으로 정렬
입양 시각 구하기(2)
https://school.programmers.co.kr/learn/courses/30/lessons/59413
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
⚠ 답변을 보고 싶지 않은 사람을 위해서 가림.
쿼리를 보고 싶은 분만 [더보기]를 클릭하세요
WITH rawdata AS (
SELECT
DATE_FORMAT(DATETIME,'%H')*1 AS `HOUR`, #입양일 시간 - string에서 number type 으로 변환
COUNT(distinct ANIMAL_ID) AS `COUNT`
FROM ANIMAL_OUTS
GROUP BY HOUR
), timedata AS ( # 24시간 빈 시간대 기록을 위한 테이블 생성
SELECT *
FROM (
SELECT
ROW_NUMBER() OVER(ORDER BY ANIMAL_ID DESC)-1 as `HOUR`
FROM ANIMAL_OUTS
)t
WHERE HOUR < 24
)
SELECT t.hour,
IFNULL(r.count,0) as COUNT
FROM timedata t
LEFT JOIN rawdata r
ON t.hour=r.hour
ORDER BY HOUR
우유와 요거트가 담긴 장바구니
https://school.programmers.co.kr/learn/courses/30/lessons/62284
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
⚠ 답변을 보고 싶지 않은 사람을 위해서 가림.
쿼리를 보고 싶은 분만 [더보기]를 클릭하세요
SELECT
CART_ID
FROM (
SELECT
CART_ID,
COUNT(IF(NAME = "Milk", ID, null)) as cnt_buy_milk,
COUNT(IF(NAME = "Yogurt", ID, null)) as cnt_buy_yogurt
FROM CART_PRODUCTS
GROUP BY CART_ID
HAVING cnt_buy_milk * cnt_buy_yogurt > 0 # 우유와 요거트가 다 양수인 케이스만 필터링
)t
ORDER BY CART_ID # 장바구니 아이디순
식품분류별 가장 비싼 식품의 정보 조회하기
https://school.programmers.co.kr/learn/courses/30/lessons/131116
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
⚠ 답변을 보고 싶지 않은 사람을 위해서 가림.
쿼리를 보고 싶은 분만 [더보기]를 클릭하세요
SELECT
CATEGORY,
PRICE AS MAX_PRICE,
PRODUCT_NAME
FROM (
SELECT
PRODUCT_NAME,
PRODUCT_CD,
CATEGORY,
PRICE,
RANK() OVER (PARTITION BY CATEGORY ORDER BY PRICE DESC) as rank_num # 식품분류별 가격 순위 (내림차순)
FROM FOOD_PRODUCT
WHERE
CATEGORY in ('과자', '국', '김치', '식용유') # 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력
ORDER BY CATEGORY, PRICE DESC
)t
WHERE
rank_num = 1 # 식품분류별 가격순위(내림차순)이 1인 것만 필터링
ORDER BY MAX_PRICE DESC # 식품 가격을 기준으로 내림차순 정렬
5월 식품들의 총매출 조회하기
https://school.programmers.co.kr/learn/courses/30/lessons/131117
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
⚠ 답변을 보고 싶지 않은 사람을 위해서 가림.
쿼리를 보고 싶은 분만 [더보기]를 클릭하세요
SELECT
p.PRODUCT_ID,
p.PRODUCT_NAME,
SUM(AMOUNT*PRICE) AS TOTAL_SALES # 총매출 계산 : 판매량 * 식품가격
FROM FOOD_PRODUCT p
INNER JOIN FOOD_ORDER o
ON
p.PRODUCT_ID = o.PRODUCT_ID
AND DATE_FORMAT(o.PRODUCE_DATE,"%Y-%m") = '2022-05' # 생산일자가 2022년 5월인 식품
GROUP BY
PRODUCT_ID,
PRODUCT_NAME
ORDER BY
TOTAL_SALES DESC # 총매출 기준 내림차순
서울에 위치한 식당 목록 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/131118
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
⚠ 답변을 보고 싶지 않은 사람을 위해서 가림.
쿼리를 보고 싶은 분만 [더보기]를 클릭하세요
SELECT
I.REST_ID, # 식당 ID
I.REST_NAME,# 식당 이름
I.FOOD_TYPE,# 음식 종류
I.FAVORITES,# 즐겨찾기수
I.ADDRESS,# 주소
ROUND(AVG(R.REVIEW_SCORE),2) AS SCORE # 리뷰 평균 점수 : 소수점 세 번째 자리에서 반올림
FROM REST_INFO I
INNER JOIN REST_REVIEW R
ON
I.REST_ID = R.REST_ID
AND LEFT(I.ADDRESS,2) = "서울" # 서울에 위치한 식당
GROUP BY
I.REST_ID,
I.REST_NAME,
I.FOOD_TYPE,
I.FAVORITES,
I.ADDRESS
ORDER BY
SCORE DESC, # 평균점수 기준으로 내림차순 정렬
I.FAVORITES DESC # 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬
그룹별 조건에 맞는 식당 목록 출력하기
https://school.programmers.co.kr/learn/courses/30/lessons/131124
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
⚠ 답변을 보고 싶지 않은 사람을 위해서 가림.
쿼리를 보고 싶은 분만 [더보기]를 클릭하세요
WITH vipdata AS ( # 가장 리뷰를 많이 작성한 회원의 member_id 추출
SELECT
MEMBER_ID,
COUNT(distinct REVIEW_ID) as rcnt # 리뷰 작성 개수
FROM REST_REVIEW
GROUP BY MEMBER_ID
ORDER BY rcnt desc # 리뷰개수 내림차순
LIMIT 1 # 최상위 1명만 노출
)
SELECT
m.MEMBER_NAME,
r.REVIEW_TEXT,
r.REVIEW_DATE
FROM MEMBER_PROFILE m
INNER JOIN vipdata v
ON m.MEMBER_ID = v.MEMBER_ID
INNER JOIN REST_REVIEW r
ON m.MEMBER_ID = r.MEMBER_ID
ORDER BY REVIEW_DATE # 리뷰 작성일을 기준으로 오름차순 정렬
'STUDY ✏️' 카테고리의 다른 글
solvesql 문제풀이 - 어려움 (2) | 2022.07.10 |
---|