이번 문제 풀이에서 사용할 SQL 문법을 먼저 알아보도록 하겠습니다.
테이블명 - bills
day | time | memu | total |
mon | 점심 | 불족발 | 39,000 |
sat | 점심 | 족발보쌈 세트 | 48,000 |
sat | 저녁 | 보쌈국수세트 | 38,000 |
sun | 저녁 | 보쌈 | 32,000 |
sun | 저녁 | 반반족발 | 41,000 |
데이터 그룹으로 묶기
GROUP BY
-- 시간대별로 구매 금액의 합계 구하기
SELECT time
, SUM(total)
FROM bills
GROUP BY time
-- 요일, 시간대별로 구매 금액의 합계 구하기
SELECT day
,time
,SUM(total)
FROM bills
GROUP BY day, time
SELECT와 GROUP BY절에는 같은 칼럼이 들어있어야 합니다.
GROUP BY절에는 그룹의 기준이 되는 컬럼을 적습니다. 해당 칼럼은 SELECT 절에도 있어야 한다는 것을 잊지 마세요.
-- 시간대별로 구매 금액의 합계 구하기. 단, 구매 금액이 40,000원 이상인 것만 출력
SELECT time
, SUM(total)
FROM bills
GROUP BY time
HAVING total >= 40000
프로그래머스 SQL 고득점 kit 문제 풀이
1. 고양이와 개는 몇 마리 있을까?
코딩테스트 연습 - 고양이와 개는 몇 마리 있을까
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디
programmers.co.kr
SELECT ANIMAL_TYPE, COUNT(ANIMAL_TYPE)
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE
GROUP BY를 사용하여 동물 종류별로 묶고, ORDER BY를 사용하여 고양이가 먼저 조회될 수 있도록 하였습니다.
2. 동명 동물 수 찾기
코딩테스트 연습 - 동명 동물 수 찾기
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디
programmers.co.kr
SELECT NAME, COUNT(NAME)
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT(NAME) >= 2
ORDER BY NAME
동물 이름 중 두 번 이상 쓰인 이름만 조회되도록 HAVING절에 조건을 걸고 ORDER BY를 사용해 결과를 이름 순으로 정렬하면 됩니다.
3. 입양 시각 구하기(1)
코딩테스트 연습 - 입양 시각 구하기(1)
ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물
programmers.co.kr
SELECT hour(datetime) AS HOUR, count(datetime) AS COUNT
FROM animal_outs
WHERE hour(datetime) between 9 and 19
GROUP hour(datetime)
ORDER BY HOUR
2018-02-22 07:06:00 형태로 되어있는 datetime 필드에서 ‘시’ 부분만 추출해야 합니다. hour이라는 날짜 함수를 사용하면 ‘시’부분만 구할 수 있습니다. 그다음 조건절로 9시 - 19시 사이의 시간만 조회하고 그룹으로 묶어서 카운팅 하면 됩니다. 시간대 순으로 정렬하기 위해 ORDER BY를 사용하였습니다.
'스터디 > SQL' 카테고리의 다른 글
[SQL 연습 문제] 프로그래머스 SQL 고득점 키트 문제 풀이(JOIN) (0) | 2022.04.29 |
---|---|
[SQL 연습 문제] 프로그래머스 SQL 고득점 키트 문제 풀이(CASE WHEN, IF) (0) | 2022.04.21 |
[SQL 연습 문제] 프로그래머스 SQL 고득점 키트 문제 풀이(COUNT, SUM, AVG, MIX, MAX) (0) | 2022.04.14 |
[SQL 연습 문제] solvesql 문제 풀이(SELECT, FROM, WHERE, ORDER BY) (0) | 2022.04.08 |
[MySQL] ch10_UNION, UNION ALL (0) | 2022.03.24 |