알고리즘/SQL

[GROUP BY] 프로그래머스 SQL 고득점 Kit

이진지니지니진 2023. 2. 20. 14:03

진료과별 총 예약 횟수 출력하기

 

SELECT MCDP_CD as '진료과 코드', count(*) as '5월예약건수'
FROM APPOINTMENT
WHERE YEAR(APNT_YMD) = 2022 and MONTH(APNT_YMD) = 5
GROUP BY MCDP_CD
ORDER BY count(MCDP_CD), MCDP_CD

 

성분으로 구분한 아이스크림 총 주문량

 

SELECT INGREDIENT_TYPE, SUM(TOTAL_ORDER) AS TOTAL_ORDER
FROM FIRST_HALF A, ICECREAM_INFO B
WHERE A.FLAVOR = B.FLAVOR
GROUP BY INGREDIENT_TYPE

 

자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기

 

SELECT CAR_TYPE, COUNT(*) AS CARS
FROM CAR_RENTAL_COMPANY_CAR
WHERE OPTIONS LIKE '%시트%'
GROUP BY CAR_TYPE
ORDER BY CAR_TYPE

WHERE 컬럼명 LIKE : 특정 값(단어)이 포함된 값

                         NOT LIKE : 특정 값(단어)이 포함되지 않은 값

                         % (모든문자)

                         _ (한 글자)

 

고양이와 개는 몇 마리 있을까

 

SELECT ANIMAL_TYPE, COUNT(*) AS COUNT
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE

 

동명 동물 수 찾기

 

SELECT NAME, COUNT(NAME) AS COUNT
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT >= 2
ORDER BY NAME

HAVING 검색 조건 : 그룹화 또는 집계가 발생한 후 레코드 필터링 하는데 사용

                                (GROUP BY절 뒤에 사용)

 

입양 시각 구하기(2)

 

SELECT HOUR(DATETIME) HOUR, COUNT(*) COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR(DATETIME)
HAVING HOUR BETWEEN 9 AND 20
ORDER BY HOUR

 

 

가격대 별 상품 개수 구하기

 

SELECT FLOOR(PRICE / 10000) * 10000 AS PRICE_GROUP, count(*) AS PRODUCTS
FROM  PRODUCT 
GROUP BY  PRICE_GROUP
ORDER BY  PRICE_GROUP

FLOOR(숫자) : 소수점 이하는 버림