포스팅 목차
* 파이썬 & R 패키지 호출 및 예제 데이터 생성 링크
[ REMAINDER Oracle Function ]
REMAINDER함수는 n2를 n1으로 나눈 나머지를 반환한다.
- 함수설명 : REMAINDER 오라클 함수 링크
1. Oracle(오라클)
mod 함수와 동일한 역할을 수행하지만 내부 연산 방법에 차이가 있다.
- MOD : n2 - n1 * FLOOR (n2 / n1)
- REMAINDER : n2 - n1 * ROUND (n2 / n1)
Oracle Programming |
SELECT REMAINDER(3, 2), REMAINDER(7F, 3), REMAINDER(5.5D, 1.3F)
FROM DUAL;
Results |
REMAINDER(3,2) REMAINDER(7F,3) REMAINDER(5.5D,1.3F)
-1 1.0E+000 3.0000019073486328E-001
Oracle Programming |
SELECT REMAINDER(3, 2) REMAINDER_1,
REMAINDER(5, 2) REMAINDER_2,
REMAINDER(15, 4) REMAINDER_3
FROM DUAL;
Results |
REMAINDER_1 REMAINDER_2 REMAINDER_3
-------------------------------------
-1 1 -1
2. Python Pandas(파이썬)
% 연산자
3을 2로 나눈 나머지 값 1을 반환한다.
Python Programming |
3%2
Results |
1
5을 2로 나눈 나머지 값 1을 반환한다.
Python Programming |
5%2
Results |
1
15을 4로 나눈 나머지 값 3을 반환한다.
Python Programming |
15%4
Results |
3
3. R Programming (R Package)
%% 연산자
3을 2로 나눈 나머지 값 1을 반환한다.
R Programming |
%%R
3%%2
Results |
[1] 1
15를 2로 나눈 나머지 값 3을 반환한다.
R Programming |
%%R
15%%4
Results |
[1] 3
4. R Dplyr Package
%% 연산자
mgr 변수를 deptno 변수로 나눈 나머지를 반환한다.
R Programming |
%%R
emp %>%
dplyr::mutate( REMAINDER = mgr %% deptno) %>%
head()
Results |
# A tibble: 6 x 9
empno ename job mgr hiredate sal comm deptno REMAINDER
<dbl> <chr> <chr> <dbl> <date> <dbl> <dbl> <dbl> <dbl>
1 7369 SMITH CLERK 7902 1980-12-17 800 NA 20 2
2 7499 ALLEN SALESMAN 7698 1981-02-20 1600 300 30 18
3 7521 WARD SALESMAN 7698 1981-02-22 1250 500 30 18
4 7566 JONES MANAGER 7839 1981-04-02 2975 NA 20 19
5 7654 MARTIN SALESMAN 7698 1981-09-28 1250 1400 30 18
6 7698 BLAKE MANAGER 7839 1981-03-01 2850 NA 30 9
5. R sqldf Package
% 연산자
R Programming |
%%R
sqldf(" SELECT 3%2 mod_1, 5%2 mod_2, 15%4 mod_3,
mod(15,4) mod_4")
Results |
mod_1 mod_2 mod_3 mod_4
1 1 1 3 3
6. Python pandasql Package
% 연산자
Python Programming |
ps.sqldf(" SELECT 3%2 mod_1, 5%2 mod_2, 15%4 mod_3")
Results |
mod_1 mod_2 mod_3
0 1 1 3
7. R data.table Package
%% 연산자
mgr 변수를 deptno 변수로 나눈 나머지를 반환한다.
R Programming |
%%R
DT <- data.table(emp)
dept_DT <- data.table(dept)
DT[,REMAINDER := mgr %% deptno][1:10, ]
Results |
empno ename job mgr hiredate sal comm deptno REMAINDER
1: 7369 SMITH CLERK 7902 1980-12-17 800 NA 20 2
2: 7499 ALLEN SALESMAN 7698 1981-02-20 1600 300 30 18
3: 7521 WARD SALESMAN 7698 1981-02-22 1250 500 30 18
4: 7566 JONES MANAGER 7839 1981-04-02 2975 NA 20 19
5: 7654 MARTIN SALESMAN 7698 1981-09-28 1250 1400 30 18
6: 7698 BLAKE MANAGER 7839 1981-03-01 2850 NA 30 9
7: 7782 CLARK MANAGER 7839 1981-01-09 2450 NA 10 9
8: 7788 SCOTT ANALYST 7566 1982-12-09 3000 NA 20 6
9: 7839 KING PRESIDENT NA 1981-11-17 5000 NA 10 NA
10: 7844 TURNER SALESMAN 7698 1981-09-08 1500 0 30 18
8. Python Duckdb의 SQL
Python Programming |
%%sql
SELECT 3%2 mod_1, 5%2 mod_2, 15%4 mod_3
Python Programming |
duckdb.sql(" SELECT 3%2 mod_1, 5%2 mod_2, 15%4 mod_3 ").df()
Results |
mod_1 mod_2 mod_3
0 1 1 3
Python Programming |
%%sql
select typeof(mgr),
typeof(deptno),
mgr % deptno as REMAINDER_1
from emp
LIMIT 6
Python Programming |
duckdb.sql(" select typeof(mgr), \
typeof(deptno), \
mgr % deptno as REMAINDER_1 \
from emp \
LIMIT 6 ").df()
Results |
typeof(mgr) typeof(deptno) REMAINDER_1
0 DOUBLE BIGINT 2.0
1 DOUBLE BIGINT 18.0
2 DOUBLE BIGINT 18.0
3 DOUBLE BIGINT 19.0
4 DOUBLE BIGINT 18.0
5 DOUBLE BIGINT 9.0
--------------------------------------------
[Oracle, Pandas, R Prog, Dplyr, Sqldf, Pandasql, Data.Table] 오라클 함수와 R & Python 비교 사전 목록 링크 |
오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크 |
[SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 링크 |
반응형
댓글