문제1. 프로그래머스 > SUM, MAX, MIN > 동물수구하기 #집계함수
SELECT COUNT(DISTINCT ANIMAL_ID) AS count
FROM ANIMAL_INS
문제2. 프로그래머스 > SUM, MAX, MIN > 중복제거하기 #집계함수 #중복제거 #결측값제외
SELECT COUNT(DISTINCT NAME) AS count
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
문제3. 프로그래머스 > SUM, MAX, MIN > 가격이 제일 비싼 식품의 정보 출력하기 #집계함수 #서브쿼리
SELECT PRODUCT_ID,
PRODUCT_NAME,
PRODUCT_CD,
CATEGORY,
PRICE
FROM FOOD_PRODUCT
WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT)
어떤 것 중 가장 가격이 크다, 혹은 어느 부서에서 가장 연봉이 높은 직원의 ~을 구하여라 하는 류의 문제는 WHERE절에 가격 혹은 SALARY에 대한 서브쿼리를 이용해서 풀면 쉽게 풀린다!
문제4. 프로그래머스 > GROUP BY > 진료과별 총 예약횟수 출력하기 #집계함수 #날짜함수 #GROUPBY
SELECT MCDP_CD AS 진료과코드,
COUNT(DISTINCT PT_NO) AS 5월예약건수
FROM APPOINTMENT
WHERE YEAR(APNT_YMD) = 2022 AND MONTH(APNT_YMD) = 5
GROUP BY 진료과코드
ORDER BY 5월예약건수, 진료과코드
문제5. 프로그래머스 > GROUP BY > 식품분류별 가장 비싼 식품의 정보 조회하기 #집계함수 #서브쿼리 #GROUPBY
SELECT CATEGORY,
PRICE,
PRODUCT_NAME
FROM FOOD_PRODUCT
WHERE (CATEGORY, PRICE) IN (
SELECT CATEGORY,
MAX(PRICE)
FROM FOOD_PRODUCT
WHERE CATEGORY IN ('과자', '국', '김치', '식용유')
GROUP BY CATEGORY
)
ORDER BY PRICE DESC
문제3과 마찬가지로 CATEGORY별로 높은 가격을 WHERE절의 서브쿼리로 추출해오면 문제를 쉽게 해결할 수 있다.
문제6. 프로그래머스 > GROUP BY > 성분으로 구분한 아이스크림 총주문량 #SUM #INNERJOIN #GROUPBY
SELECT II.INGREDIENT_TYPE,
SUM(FH.TOTAL_ORDER) AS TOTAL_ORDER
FROM ICECREAM_INFO II
INNER JOIN FIRST_HALF FH ON II.FLAVOR = FH.FLAVOR
GROUP BY 1
ORDER BY TOTAL_ORDER
문제7. 프로그래머스 > GROUP BY > 즐겨찾기가 가장 많은 식당정보 출력하기 #MAX #GROUPBY #서브쿼리
SELECT FOOD_TYPE,
REST_ID,
REST_NAME,
FAVORITES
FROM REST_INFO
WHERE (FOOD_TYPE, FAVORITES) IN (
SELECT FOOD_TYPE,
MAX(FAVORITES)
FROM REST_INFO
GROUP BY 1
)
ORDER BY FOOD_TYPE DESC
문제3, 문제5와 같이 음식타입별 가장 높은 즐겨찾기를 WHERE절에 서브쿼리로 추출해올 수 있다.
문제8. 프로그래머스 > GROUP BY > 고양이와 개는 몇마리있을까 #COUNT #WHERE #GROUPBY #ORDERBY
SELECT ANIMAL_TYPE,
COUNT(DISTINCT ANIMAL_ID)
FROM ANIMAL_INS
WHERE ANIMAL_TYPE IN ('Cat', 'Dog')
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE
문제9. 프로그래머스 > GROUP BY > 동명동물수찾기 #COUNT #ISNITNULL #GROUPBY #HAVING
SELECT DISTINCT NAME,
COUNT(NAME) AS COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(NAME) >= 2
ORDER BY NAME
문제10. 프로그래머스 > GROUP BY > 입양시각구하기(1) #HOUR(DATETIME) #COUNT #BETWEEN #GROUPBY
SELECT HOUR(DATETIME) AS HOUR,
COUNT(DISTINCT ANIMAL_ID) AS COUNT
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) BETWEEN 9 AND 20
GROUP BY 1
ORDER BY 1
[6주차]리트코드: day1 ~ day4 (0) | 2022.12.08 |
---|---|
[5주차] 프로그래머스: JOIN, STRING, DATE (0) | 2022.12.08 |
[4주차] 프로그래머스: GROUP BY/ IS NULL/ JOIN (0) | 2022.11.22 |
[2주차] 프로그래머스, SELECT/ SUM,MIN,MAX 문제풀이 (0) | 2022.11.11 |
[1주차] 프로그래머스: SELECT 문제풀이 (0) | 2022.11.03 |