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

[기초 통계량 - MAX 함수] 조건절을 만족하는 수치형 데이터 최대값 측정 - 31 (오라클 SQL, R, Python, SAS)

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

포스팅 목차

     

    31. Display the maximum salary being paid to CLERK.

     

    * 사무직 직원에게 지급되는 최대 급여를 출력하시오.


    • 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)

    • emp 테이블에서 사무직 직원 중에서 최대 급여(max)를 수령하는 직원의 급여를 출력.
    Oracle Programming
    select max(sal) sal_max
    from   emp 
    where  job='CLERK';

     


    2. 파이썬(Pandas)

    • 사무직 직원을 선택 후 급여(sal)가 최대인 사원의 급여를 출력
    Python Programming
    max(emp[emp['job'] == 'CLERK']['sal'])

     

    Results
    1300

     


    • Max 함수
    Python Programming
    emp.query(' job == "CLERK" ')[['sal']].max()

     

    Results
    sal    1300
    dtype: int64

     


    3. R Programming (R Package)

    • 사무직 직원을 선택 후 max() 함수를 사용하여서 급여(sal)가 최대인 사원의 급여를 출력
    R Programming
    %%R
    max(emp[emp$job == "CLERK" , c("sal") ])

     

    Results
    [1] 1300

     


    subset()을 사용하여서 사무직 직원을 사원을 선택 후 summarise(max()) 함수를 사용하여서 사무직 직원의 최대 급여를 출력

    R Programming
    %%R
    max( subset(emp,subset= (job == "CLERK") , select=c(sal) ) )

     

    Results
    [1] 1300

     


    4. R Dplyr Package

    filter()를 사용하여서 사무직 직원을 사원을 선택 후 summarise(max()) 함수를 사용하여서 사무직 직원의 최대 급여를 출력

    R Programming
    %%R
    emp %>% filter(job=='CLERK') %>% dplyr::summarise(max_value = max(sal))

     

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

     


    5. R sqldf Package

    where 구문을 사용하여서 사무직 직원을 사원을 선택 후 summarise(max()) 함수를 사용하여서 사무직 직원의 최대 급여를 출력

    R Programming
    %%R
    sqldf("select max(sal) from emp where job='CLERK'")

     

    Results
      max(sal)
    1     1300

     


    6. Python pandasql Package

    • Max 함수
    Python Programming
    ps.sqldf("select max(sal) from emp where job='CLERK'")

     

    Results
      max(sal)
    0 1300

     


    7. R data.table Package

    DT data.table에서 사무직 직원을 사원을 선택 후 max() 함수를 사용하여서 사무직 직원의 최대 급여를 출력

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

     

    Results
       sal_max
    1:    1300

     


    8. SAS Proc SQL

    • Max 함수
    SAS Programming
    %%SAS sas
    
    PROC SQL;
      CREATE TABLE STATSAS_1 AS
        SELECT MAX(SAL) AS SAL_MAX
        FROM   EMP A
        where  job='CLERK';
    QUIT;
    PROC PRINT;RUN;

     

    Results
    OBS SAL_MAX
    1 1300

     


    9. SAS Data Step

    • Proc Summary
    SAS Programming
    %%SAS sas
    
    PROC SUMMARY DATA=EMP;
         VAR SAL;
         OUTPUT OUT=STATSAS_2(DROP=_:) MAX=SAL_MAX;
         where  job='CLERK';
    RUN;
    PROC PRINT;RUN;

     

    Results
    OBS SAL_MAX
    1 1300

     


    10. Python Dfply Package

    • summarize()와 Max 함수
    Python Programming
    emp >> filter_by( X.job=='CLERK' ) >> summarize( max_value = X.sal.max() )

     

    Results
      max_value
    0 1300

     


     

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

     

    반응형

    댓글