SELECT절-숫자함수, 날짜함수, 순위함수
이번엔 SQL함수의 다른 함수인 숫자함수와 날짜함수, 순위함수 에 대해 정리해보겠다. 외워두자.
그런데 숫자함수는 기존에 자바에서 했던 Math클래스의 메서드와 이름과 역할이 비슷해 얼추 쉬웠다.
ㅇ 숫자함수
ㅁ SIGN(숫자) -> 파라미터가 양수면 1, 음수면 -1, 0이면 0을 출력
ㅁ ABS(숫자) -> 파라미터의 절댓값을 출력한다.
ㅁ CEILING(숫자) -> 파라미터를 올림해 정수로 출력. -1.2가 파라미터로 주어지면 -1이 출력.
ㅁ FLOOR(숫자) -> 파라미터를 내림해 정수로 출력함.
ㅁ ROUND(숫자, 소수점자리) -> 파라미터를 반올림해, 지정한 소수점자리까지 출력. ROUND(3.123, 2) -> 3.12
ㅁ POWER(숫자, 지수) -> 첫번째 파라미터를 지수만큼 제곱한다. POWER(2,3) -> 8
ㅁ SQRT(숫자) -> 파라미터를 제곱근해 출력. SQRT(9) -> 3
ㅇ 날짜함수
ㅁ GETDATE() -> 현재 시간을 출력해준다. GETDATE() -> 2024-01-12 09:46:23
ㅁ DATEADD(기간 및 시간 기준, 더해줄 정수, 특정 날짜) -> 특정날짜에 기간 및 시간을 더해 출력. 시간간격은 YEAR, QUARTER, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND. 더해줄 정수는 양수 혹은 음수.
ㅁ DATEDIFF(기간 간격 기준, 날짜1, 날짜2) -> 날짜2-날짜1. 만약 날짜2보다 날짜1이 미래라면 마이너스값이 출력. 기간 간격 기준은 DATEADD와 같음.
ㅁ YEAR(날짜) -> 특정 날짜의 연도에 해당하는값 출력
ㅁ MONTH(날짜) -> 특정 날짜의 월에 해당하는값 출력
ㅁ DAY(날짜) -> 특정 날짜의 일에 해당하는값 출력
ㅇ 순위함수
ㅁ RANK -> 값이 같은 경우 동일순위로 책정하며 다음 순위는 동일 순위만큼 제외하고 매김. 1,2,2,4,..
ㅁ DENSE_RANK -> 값이 같은 경우 동일 순위로 책정하며 동일 순위 다음순서는 동일 순위 바로 다음순서로 매김1,2,2,3,...
ㅁ ROW_NUMBER -> 위에 두개메서드는 값이 같은 경우 동일 순위로 부여하는데 반해 값이 같더라도 고유한 순위로 책정됨.1,2,3,4,...
순위함수의 사용방법
순위함수() OVER (PARTITION BY 기준1, .. ORDER BY 기준1, ...)
PARTITION BY 절은 안써도 무방, ORDER BY 절은 안쓰면 기본으로 ASC(오름차순)