포스팅 목차
46. Display the various jobs and total salary for each job.
* 개별 직무 속한 직원들의 총 급여를 계산하시오.
- 파이썬 & R 패키지 호출 및 예제 데이터 생성 링크
- [그룹별 집계함수] 그룹별 합계 집계
|
1. Oracle(오라클)
개별 직무 속한 직원들의 총 급여 합계를 계산한다.
Oracle Programming |
select job,
sum(sal) as sal_sum
from emp
group
by job;
2. Python Pandas(파이썬)
개별 직무 속한 직원들의 총 급여 합계를 계산한다.
Python Programming |
emp.groupby(['job'])['sal'].agg(['sum']).reset_index()
Results |
job | sum | |
0 | ANALYST | 6000 |
1 | CLERK | 4150 |
2 | MANAGER | 8275 |
3 | PRESIDENT | 5000 |
4 | SALESMAN | 5600 |
3. R Programming (R Package)
개별 직무 속한 직원들의 총 급여 합계를 계산한다.
R Programming |
%%R
aggregate(sal ~ job, data = emp, FUN = function(x) c(sum_sal = sum(x) ) )
Results |
job sal
1 ANALYST 6000
2 CLERK 4150
3 MANAGER 8275
4 PRESIDENT 5000
5 SALESMAN 5600
4. R Dplyr Package
개별 직무 속한 직원들의 총 급여 합계를 계산한다.
R Programming |
%%R
emp %>%
group_by(job) %>% summarise( sum_sal=sum(sal) )
Results |
`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 5 x 2
job sum_sal
<chr> <dbl>
1 ANALYST 6000
2 CLERK 4150
3 MANAGER 8275
4 PRESIDENT 5000
5 SALESMAN 5600
5. R sqldf Package
개별 직무 속한 직원들의 총 급여 합계를 계산한다.
R Programming |
%%R
sqldf("select job, sum(sal) tot_sal from emp group by job")
Results |
job tot_sal
1 ANALYST 6000
2 CLERK 4150
3 MANAGER 8275
4 PRESIDENT 5000
5 SALESMAN 5600
6. Python pandasql Package
개별 직무 속한 직원들의 총 급여 합계를 계산한다.
Python Programming |
ps.sqldf("select job, sum(sal) tot_sal from emp group by job")
Results |
job | tot_sal | |
0 | ANALYST | 6000 |
1 | CLERK | 4150 |
2 | MANAGER | 8275 |
3 | PRESIDENT | 5000 |
4 | SALESMAN | 5600 |
7. R data.table Package
개별 직무 속한 직원들의 총 급여 합계를 계산한다.
R Programming |
%%R
DT <- data.table(emp)
DT[, .('sum_sal' = sum(sal, na.rm = TRUE)), keyby = .(job)]
Results |
job sum_sal
1: ANALYST 6000
2: CLERK 4150
3: MANAGER 8275
4: PRESIDENT 5000
5: SALESMAN 5600
8. SAS Proc SQL
개별 직무 속한 직원들의 총 급여 합계를 계산한다.
SAS Programming |
%%SAS sas
PROC SQL;
CREATE TABLE STATSAS_1 AS
select job, sum(sal) AS SAL_SUM
from emp
group
by 1;
QUIT;
PROC PRINT;RUN;
Results |
OBS | job | SAL_SUM |
1 | ANALYST | 6000 |
2 | CLERK | 4150 |
3 | MANAGER | 8275 |
4 | PRESIDEN | 5000 |
5 | SALESMAN | 5600 |
9. SAS Data Step
개별 직무 속한 직원들의 총 급여 합계를 계산한다.
SAS Programming |
%%SAS sas
PROC SUMMARY DATA=EMP NWAY;
CLASS job;
VAR SAL;
OUTPUT OUT=STATSAS_2(DROP=_:) sum=SAL_SUM;
RUN;
PROC PRINT;RUN;
Results |
OBS | job | SAL_SUM |
1 | ANALYST | 6000 |
2 | CLERK | 4150 |
3 | MANAGER | 8275 |
4 | PRESIDEN | 5000 |
5 | SALESMAN | 5600 |
SAS Programming |
%%SAS sas
PROC SORT DATA=EMP OUT=EMP_1;
BY job;
RUN;
DATA STATSAS_3;
SET EMP_1;
BY job;
IF FIRST.job THEN SAL_SUM = SAL;
ELSE SAL_SUM + SAL;
IF LAST.job THEN OUTPUT;
KEEP DEPTNO SAL_SUM;
RUN;
PROC PRINT;RUN;
Results |
OBS | deptno | SAL_SUM |
1 | 20 | 6000 |
2 | 10 | 4150 |
3 | 10 | 8275 |
4 | 10 | 5000 |
5 | 30 | 5600 |
10. Python Dfply Package
개별 직무 속한 직원들의 총 급여 합계를 계산한다.
Python Programming |
emp >> group_by('job') >> summarize( sal_tot = X.sal.sum() )
Results |
job | sal_tot | |
0 | ANALYST | 6000 |
1 | CLERK | 4150 |
2 | MANAGER | 8275 |
3 | PRESIDENT | 5000 |
4 | SALESMAN | 5600 |
[SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트
반응형
댓글