티스토리 뷰
GROUP BY
- GROUP BY는 데이터들을 원하는 그룹으로 나눌 수 있다.
- 그룹화하기 위해 집계 함수(COUNT, MAX, MIN, SUM, AVG)와 자주 사용된다!
SELECT COUNTRY, COUNT(COUNTRY) AS COUNRY_COUNT
FROM CUSTOMERS
GROUP BY COUNTRY
ORDER BY COUNTRY
- CUSTOMERS 테이블에서 나라별 고객의 수
HAVING
- GROUP BY 절에 의해 생성된 결과 값 중 원하는 조건의 데이터를 분류하기 위해 사용(WHERE과 유사하지만 GROUP BY와 사용된다는 점에 차이가 있다!)
SELECT COUNTRY, COUNT(COUNTRY) AS COUNRY_COUNT
FROM CUSTOMERS
GROUP BY COUNTRY
HAVING COUNT(COUNTRY) >= 10
- 나라별 고객의 수가 10 이상인 경우만 출력
관련 문제
자동차 평균 대여 기간 구하기_GROUP BY_HAVING, AVG, ROUND, DATE
📝 문제
CAR_RENTAL_COMPANY_RENTAL_HISTORY
테이블에서 평균 대여 기간이 7일 이상인 자동차들의 자동차 ID와 평균 대여 기간(컬럼명: AVERAGE_DURATION
) 리스트를 출력하는 SQL문을 작성해주세요. 평균 대여 기간은 소수점 두번째 자리에서 반올림하고, 결과는 평균 대여 기간을 기준으로 내림차순 정렬해주시고, 평균 대여 기간이 같으면 자동차 ID를 기준으로 내림차순 정렬해주세요.
🔍 정답
SELECT CAR_ID, ROUND(AVG(END_DATE - START_DATE + 1), 1) AS AVERAGE_DURATION
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
HAVING AVG(END_DATE - START_DATE + 1) >= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC
- CAR_ID를 그룹화한 후(ID 같은 것들끼리 묶음), 그 중에서 평균 대여기간이 7일 이상인 자동차의 평균 대여일수를 출력한 것!
반응형
'개발냥이 > SQLD' 카테고리의 다른 글
[SQLD] 2과목 SQL 기본 및 심화 정리 (0) | 2023.03.17 |
---|---|
[SQLD] 1과목 데이터 모델링의 이해 정리 (0) | 2023.03.17 |
[SQLD] 정규화(Nomalization) (0) | 2023.02.23 |
[SQLD] 관계 (0) | 2023.02.06 |
[SQLD] 속성(Attribute) (0) | 2023.02.01 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Queue
- 리액트
- 자바트리
- 자바
- DP
- 타입스크립트
- Algorithm
- Nest
- 형변환
- SQL
- dfs
- 정렬
- 프로그래머스
- 백준
- 이분탐색
- JavaScript
- BFS
- 자바bfs
- 스프링
- 알고리즘
- Spring
- 해시맵
- CS
- java
- Comparator
- 자바스크립트
- JPA
- 자바dp
- SQLD
- 스프링부트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함