SQL 함수 (숫자)
in Legacy on ECMAScript
다음의 데이터로 MySQL에서 진행하였습니다.
data generate site 에서 데이터를 랜덤으로 생성하였습니다.
DROP TABLE `prod_sales`;
CREATE TABLE `prod_sales` (
`id` mediumint(8) unsigned NOT NULL auto_increment,
`total_sales` varchar(100) default NULL,
`total_num` mediumint default NULL,
`econ_income` mediumint default NULL,
PRIMARY KEY (`id`)
) AUTO_INCREMENT=1;
INSERT INTO `prod_sales` (`total_sales`,`total_num`,`econ_income`) VALUES ("42.18",116,-262),("98.33",584,52),("58.45",61,-126),("4.90",292,-30),("25.01",382,-226),("64.03",155,141),("90.76",155,-100),("86.93",281,-217),("32.86",381,196),("81.31",221,52);
위의 쿼리문의 결과 테이블 prod_sales는 다음과 같이 생겼습니다.
ROUND
소수점의 자릿수를 지정하여 반올림한다. ROUND(열이름, 반올림된 자리수)
반올림된 자리수가 1이면 2번째자리를 반올림하여 최종적으로 소수점 이하 1자리만 있는 수를 출력합니다.
반올림된 자리수가 3이면 4번째자리를 반올림하여 최종적으로 소수점 이하 3자리만 있는 수를 출력합니다.
SELECT total_sales, ROUND(total_sales, 1) FROM prod_sales;
TRUNCATE
해당 소수점 자리에서 잘라낼 때 사용한다. TRUNCATE(열이름, 잘라낼 소수점 위치)
그냥 잘라낼 소수점 위치에 대해 버림
을 합니다.
SELECT total_sales, TRUNCATE(total_sales, 1) FROM prod_sales;
MOD(M, N)
M을 N으로 나눈 나머지를 출력합니다.
아래의 예는 total_num을 10으로 나눈 나머지를 출력하게 했습니다.
SELECT total_num, MOD(total_num, 10) FROM prod_sales;
ABS
절대값을 출력합니다.
SELECT econ_income, ABS(econ_income) FROM prod_sales;
SIGN
숫자가 양수면 1, 음수면 -1, 0이면 0을 나타낸다.
SELECT econ_income, SIGN(econ_income) FROM prod_sales;
SQRT
제곱근을 나타낸다.
SELECT total_num, SQRT(total_num) FROM prod_sales;
COS
지정한 각도의 COS값을 나타낸다. (라디안 기준입니다.)
SELECT total_num, COS(total_num) FROM prod_sales;
total_num의 유일한 두자리 수 61을 실제 계산해보았더니 값이 일치했습니다.
SIN
SELECT total_num, SIN(total_num) FROM prod_sales;
PI
SELECT PI();
TAN
SELECT total_num, TAN(total_num) FROM prod_sales;