본문 바로가기
통계프로그램 비교 시리즈/프로그래밍비교(Oracle,Python,R,SAS)

[기초 통계량 - 최대값 MAX 계산] 조건절을 만족하는 수치형 데이터의 최대값 반환 - 32

by 기서무나구물 2021. 8. 8.

포스팅 목차

     

    32. Display the maximum salary being paid in dept no 20.

     

    * 부서번호 20에 근무하는 직원에게 지급되는 최대 급여를 출력하시오.


    • [집계함수] 조건절을 만족하는 수치형 데이터 최대값 측정
    • Oracle : max()
    • 파이썬 Pandas : .query(), max()
    • R 프로그래밍 : max(), subset()
    • R Dplyr Package : dplyr::summarise(), max(), filter()
    • R sqldf Package : max()
    • Python pandasql Package : max()
    • R data.table Package : max()
    • SAS Proc SQL : max()
    • SAS Data Step : proc summary, max=
    • Python Dfply Package : summarize(), .max(), filter_by()
    • 파이썬 Base 프로그래밍 :

     


    1. 오라클(Oracle)

    부서번호(Deptno)가 20에 근무하는 직원의 최대 급여를 출력

    Oracle Programming
    select max(sal) sal_max
    from   emp 
    where  deptno=20;

     


    2. 파이썬(Pandas)

    부서번호 20에 근무하는 사원을 선택 후 max() 함수를 사용하여서 최대 급여를 출력

    Python Programming
    max(emp[emp['deptno'] == 20]['sal'])

     

    Results
    3000

     


    * Query() 사용하여서 부서번호 20에 근무하는 사원을 선택 후 최대 급여(max() 함수)를 출력한다.

    Python Programming
    emp.query(' deptno == 20 ')[['sal']].max()

     

    Results
    sal    3000
    dtype: int64

     


    3. R Programming (R Package)

    부서번호 20에 근무하는 사원을 선택 후 max() 함수를 사용하여서 최대 급여를 출력

    R Programming
    %%R
    max(emp[emp$deptno == 20 , c("sal") ])

     

    Results
    [1] 3000

     


    subset() 사용하여서 부서번호 20에 근무하는 사원을 선택 후 max() 함수를 사용하여서 최대 급여를 출력

    R Programming
    %%R
    max( subset(emp,subset= (deptno == 20) , select=c(sal) ) )

     

    Results
    [1] 3000

     


    4. R Dplyr Package

    filter()를 사용하여서 부서번호 20에 근무하는 사원을 선택 후 summarise(max()) 함수를 사용하여서 최대 급여를 출력

    R Programming
    %%R
    emp %>% filter(deptno == 20 ) %>% dplyr::summarise(max_value = max(sal))

     

    Results
    # A tibble: 1 x 1
      max_value
          <dbl>
    1      3000

     


    5. R sqldf Package

    부서번호가 20에 근무하는 사원을 선택 후 max() 함수를 사용하여서 최대 급여를 출력

    R Programming
    %%R
    sqldf("select max(sal) from emp where deptno=20")

     

    Results
      max(sal)
    1     3000

     


    6. Python pandasql Package

     

    Python Programming
    ps.sqldf("select max(sal) from emp where deptno=20")

     

    Results
      max(sal)
    0 3000

     


    7. R data.table Package

    부서번호가 20에 근무하는 사원을 선택 후 max() 함수를 사용하여서 최대 급여를 출력

    R Programming
    %%R
    
    DT          <- data.table(emp)
    dept_DT     <- data.table(dept)
    
    DT[deptno == 20, .(`sal_max` = max(sal, na.rm = TRUE))]

     

    Results
       sal_max
    1:    3000

     


    8. SAS Proc SQL

     

    SAS Programming
    %%SAS sas
    
    PROC SQL;
      CREATE TABLE STATSAS_1 AS
        SELECT MAX(SAL) AS SAL_MAX
        FROM   EMP A
        where deptno=20;
    QUIT;
    PROC PRINT;RUN;

     

    Results
    OBS SAL_MAX
    1 3000

     


    9. SAS Data Step

     

    SAS Programming
    %%SAS sas
    
    PROC SUMMARY DATA=EMP;
         VAR SAL;
         OUTPUT OUT=STATSAS_2(DROP=_:) MAX=SAL_MAX;
         where deptno=20;
    RUN;
    PROC PRINT;RUN;

     

    Results
    OBS SAL_MAX
    1 3000

    10. Python Dfply Package

     

    Python Programming
    emp >> filter_by( X.deptno == 20 ) >> summarize( sal_max = X.sal.max() )

     

    Results
      sal_max
    0 3000

     


    [SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE]   SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트

    반응형

    댓글