티스토리 뷰

숫자함수

  • ABS(n) : 절대값
  • CEIL(n) : 소수점 이하 올림
  • FLOOR(n) : 소수점 이하 내림
  • ROUND(n) : 소수점 이하 반올림, ROUND(n, 자릿수) : 자릿수를 기준으로 반올림
  • TRUNCATE(n, 자릿수) : 자릿수를 기준으로 버림
  • POW(x, y) or POWER(x, y) : x^y, x의 y승
  • MOD(분자, 분모) : 분자를 분모로 나눈 나머지
  • GREATEST(n1, n2, n3, ...) : 주어진 수 중에서 가장 큰값을 반환
  • LEAST(n1, n2, n3, ...) : 주어진 수 중에서 가장 작은 값을 반환

숫자함수를 사용하면 숫자값이나 숫자 컬럼에 대해 필요한 작업을 할 수 있다.

 

쿼리문

-- 절대값
select abs(100), abs(-100);
-- 100, 100

-- 소수점 이하 올림
select ceil(10.1), ceil(10.3), ceil(10.8);
-- 11, 11, 11

-- 소수점 이하 내림
select floor(10.1), floor(10.3), floor(10.9);
-- 10, 10, 10

-- 소수점 이하 반올림
select round(10.19), round(10.3), round(10.9);
-- 10, 10, 11

-- 자릿수 기준으로 소수점 반올림
select round(10.1, 0), round(10.1239, 3), round(10.123456, 5);
-- 10, 10.124, 10.12346

-- 자릿수를 기준으로 미만 버림
select truncate(10.1234, 1), truncate(10.123, 2), truncate(10.12345, 3);
-- 10.1, 10.12, 10.123

-- x의 y승
select pow(10, 3), pow(2, 6);
-- 1000, 64

-- N % M
select mod(19, 4), mod(100, 7);
-- 3, 2

-- 주어진 수 중 최대값
select greatest(1, 2, 3, 100, 101, 102, 999);
-- 999

-- 주어진 수 중 최소값
select least(1, 2, 3, 4, 99, 199, -1, -99, -192, 1);
-- -192

-- 사원들의 사원번호와 급여를 가져온다. 급여는 10% 인상된 급여를 가져온다. 이때 소수점 이하는 올림, 버림, 반올림한 값을 가져온다.

select emp_no, ceil(salary * 1.1), floor(salary * 1.1, 0), round(salary * 1.1)
from salaries;

-- 급여액의 10% 인상금액과 기존 급여액의 차이가 10000이상 차이나는 사원들의 사원번호와 인상 금액을 가져온다. 이때 0원이하 절삭

select emp_no, floor(salary * 1.1) - salary, salary
from salaries
where floor(salary * 1.1) - salary >= 10000
order by salary asc;

 

쿼리 실행 결과

반응형
Comments
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday