본문 바로가기
통계프로그램 비교 시리즈/오라클함수 비교(R & Python)

ROUND(number) 오라클 함수 [Oracle, Pandas, R Prog, Dplyr, Sqldf, Pandasql, Data.Table, DuckDB]

by 기서무나구물 2021. 12. 14.

포스팅 목차

    * 파이썬 & R 패키지 호출 및 예제 데이터 생성 링크


    [ ROUND(number) Oracle Function ]

     


    ROUND 함수는 지정한 수치형 데이터 n값을 반올림 기준값 integer를 기준으로 반올림하여 반환한다. 만약 integer를 생략하면, n은 소수점을 반올림한다. 소수점 왼쪽의 정수부를 반올림하기 위해 음수값을 지정하여 처리한다.

     

     


    1. Oracle(오라클)

     

    round() 함수

     

    Oracle Programming
    SELECT ROUND(345.678), ROUND(345.678, 2), ROUND(345.678, -1) 
    FROM   DUAL

     

    Results
    ROUND(345.678)	ROUND(345.678,2)	ROUND(345.678,-1)
    346		345.68			350

     


    2. Python Pandas(파이썬)

     

    round() 함수

     

    Python Programming
    round(345.678)

     

    Results
    346

     


     

    Python Programming
    round(345.678, 2)

     

    Results
    345.68

     

     

     


    3. R Programming (R Package)

     

    round() 함수

     

    R Programming
    %%R
    
    round(345.678)

     

    Results
    [1] 346

     


     

    R Programming
    %%R
    
    format(345.678, digits=1)

     

    Results
    [1] "346"

     


     

    R Programming
    %%R
    
    round(345.678, 2)

     

    Results
    [1] 345.68

     

     


    4. R Dplyr Package

     

    round() 함수

    급여(sal)에 대하여 십의 자리에서 반올림하여 백의 자리에 처리한다.

     

    R Programming
    %%R
    
    emp %>%
      dplyr::mutate(num_round = round(sal,-2)) %>%
      head()

     

    Results
    # A tibble: 6 x 9
      empno ename  job        mgr hiredate     sal  comm deptno num_round
      <dbl> <chr>  <chr>    <dbl> <date>     <dbl> <dbl>  <dbl>     <dbl>
    1  7369 SMITH  CLERK     7902 1980-12-17   800    NA     20       800
    2  7499 ALLEN  SALESMAN  7698 1981-02-20  1600   300     30      1600
    3  7521 WARD   SALESMAN  7698 1981-02-22  1250   500     30      1200
    4  7566 JONES  MANAGER   7839 1981-04-02  2975    NA     20      3000
    5  7654 MARTIN SALESMAN  7698 1981-09-28  1250  1400     30      1200
    6  7698 BLAKE  MANAGER   7839 1981-03-01  2850    NA     30      2800

     

     


    5. R sqldf Package

     

    round() 함수

     

    R Programming
    %%R
    
    sqldf(" SELECT ROUND(345.678) round_1, ROUND(345.678, 2) round_2, ROUND(345.678, -1) round_3 ")

     

    Results
      round_1 round_2 round_3
    1     346  345.68     350

     

     


    6. Python pandasql Package

     

    round() 함수

     

    Python Programming
    ps.sqldf(" SELECT ROUND(345.678) round_1, ROUND(345.678, 2) round_2, ROUND(345.678, -1) round_3")

     

    Results
    	round_1	round_2	round_3
    0	346.0	345.68	346.0
     

     


    7. R data.table Package

     

    round() 함수

    급여(sal)에 대하여 십의 자리에서 반올림하여 백의 자리에 처리한다.

     

    R Programming
    %%R
    
    DT          <- data.table(emp)
    dept_DT     <- data.table(dept)
    DT[,num_round := round(sal,-2)][1:10, ]

     

    Results
        empno  ename       job  mgr   hiredate  sal comm deptno num_round
     1:  7369  SMITH     CLERK 7902 1980-12-17  800   NA     20       800
     2:  7499  ALLEN  SALESMAN 7698 1981-02-20 1600  300     30      1600
     3:  7521   WARD  SALESMAN 7698 1981-02-22 1250  500     30      1200
     4:  7566  JONES   MANAGER 7839 1981-04-02 2975   NA     20      3000
     5:  7654 MARTIN  SALESMAN 7698 1981-09-28 1250 1400     30      1200
     6:  7698  BLAKE   MANAGER 7839 1981-03-01 2850   NA     30      2800
     7:  7782  CLARK   MANAGER 7839 1981-01-09 2450   NA     10      2400
     8:  7788  SCOTT   ANALYST 7566 1982-12-09 3000   NA     20      3000
     9:  7839   KING PRESIDENT   NA 1981-11-17 5000   NA     10      5000
    10:  7844 TURNER  SALESMAN 7698 1981-09-08 1500    0     30      1500

     


    8. Python Duckdb의 SQL

     

    round() 함수

     

    Python Programming
    %%sql
      SELECT ROUND(345.678) as round_1, ROUND(345.678, 2) as round_2, ROUND(345.678, 0) as round_3

     

    Python Programming
    duckdb.sql(" SELECT ROUND(345.678) as round_1, ROUND(345.678, 2) as round_2, ROUND(345.678, 0) as round_3 ").df()

     

    Results
       round_1  round_2  round_3
    0    346.0   345.68    346.0

     


    ( https://unsplash.com/photos/maJDOJSmMoo )

      --------------------------------------------  

    [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 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 링크
    반응형

    댓글