GROUP BY ~ HAVING, ROUND, AVG, DATEDIFF 이용하기
ROUND(반올림 할 컬럼, 소수점 자리수)
=> ex) 10.1234 -> 10.1 로 반올림할 경우
ROUND(10.1234, 1)
반올림 할 컬럼 이름이 num 이라면,
ROUND(num, 1)
AVG(평균을 구할 컬럼)
=> ex) num 이라는 컬럼의 평균을 구하려면
AVG(num)
DATEDIFF(종료일 컬럼, 시작일 컬럼) + 1
=> ex) DATEDIFF(END_DATE, START_DATE) + 1
-> 기간을 구할 경우 시작 일을 포함하기 위해 1을 더해줌
GROUP BY ~ HAVING
=> HAVING 절은 WHERE 절과 비슷하지만 그룹 전체 즉, 그룹을 나타내는 결과 집합의 행에만 적용됨
반면, WHERE 절은 개별 행에 적용됨
https://school.programmers.co.kr/learn/courses/30/lessons/157342
SELECT CAR_ID, ROUND(AVG(DATEDIFF(END_DATE, START_DATE) + 1), 1) AS AVERAGE_DURATION
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
HAVING AVERAGE_DURATION >= 7
ORDER BY AVERAGE_DURATION DESC, CAR_ID DESC;
'코딩테스트 > programming_SQL' 카테고리의 다른 글
[SQL] 프로그래머스_있었는데요 없었습니다_59043 (0) | 2023.10.03 |
---|---|
[SQL] 프로그래머스_오랜 기간 보호한 동물(1)_59044 (0) | 2023.10.03 |
[SQL] 프로그래머스_조건에 부합하는 중고거래 상태 조회하기_164672 (0) | 2023.10.03 |
[SQL] 프로그래머스_재구매가 일어난 상품과 회원 리스트 구하기_131536 (0) | 2023.10.03 |
[SQL] 프로그래머스_입양 시각 구하기(1)_59412 (0) | 2023.09.17 |