포스팅 목차
90. Display those employees whose salary is more than 3000 after giving 20% increment.
* 20% 인상된 급여가 3000 이상인 직원의 정보를 출력하시오.
- 파이썬 & R 패키지 호출 및 예제 데이터 생성 링크
- Where 조건절을 만족하는 데이터 추출
|
1. Oracle(오라클)
급여(‘sal’)를 20% 추가 인상한 값이 3000보다 큰 직원의 정보를 출력한다.
Oracle Programming |
select *
from emp
where sal*120/100 >= 3000;
Oracle Programming |
select *
from emp
where sal + sal*20/100 >= 3000;
2. Python Pandas(파이썬)
현재 급여(‘sal’)에서 20% 추가 인상한 값이 3000보다 큰 직원의 정보를 출력한다.
Python Programming |
emp[ ( emp['sal'] *120/100 ) >= 3000]
Results |
empno | ename | job | mgr | hiredate | sal | comm | deptno |
7566 | JONES | MANAGER | 7839.0 | 1981/04/02 | 2975 | NaN | 20 |
7698 | BLAKE | MANAGER | 7839.0 | 1981/03/01 | 2850 | NaN | 30 |
7788 | SCOTT | ANALYST | 7566.0 | 1982/12/09 | 3000 | NaN | 20 |
7839 | KING | PRESIDENT | NaN | 1981/11/17 | 5000 | NaN | 10 |
7902 | FORD | ANALYST | 7566.0 | 1981/12/03 | 3000 | NaN | 20 |
3. R Programming (R Package)
현재 급여(‘sal’)에서 20% 추가 인상한 값이 3000보다 큰 직원의 정보를 출력한다.
R Programming |
%%R
emp[ emp$sal*120/100 >= 3000 ,]
Results |
# A tibble: 5 x 8
empno ename job mgr hiredate sal comm deptno
<dbl> <chr> <chr> <dbl> <date> <dbl> <dbl> <dbl>
1 7566 JONES MANAGER 7839 1981-04-02 2975 NA 20
2 7698 BLAKE MANAGER 7839 1981-03-01 2850 NA 30
3 7788 SCOTT ANALYST 7566 1982-12-09 3000 NA 20
4 7839 KING PRESIDENT NA 1981-11-17 5000 NA 10
5 7902 FORD ANALYST 7566 1981-12-03 3000 NA 20
4. R Dplyr Package
현재 급여(‘sal’)에서 20% 추가 인상한 값이 3000보다 큰 직원의 정보를 출력한다.
R Programming |
%%R
emp %>%
dplyr::filter( sal*120/100 >= 3000 )
Results |
# A tibble: 5 x 8
empno ename job mgr hiredate sal comm deptno
<dbl> <chr> <chr> <dbl> <date> <dbl> <dbl> <dbl>
1 7566 JONES MANAGER 7839 1981-04-02 2975 NA 20
2 7698 BLAKE MANAGER 7839 1981-03-01 2850 NA 30
3 7788 SCOTT ANALYST 7566 1982-12-09 3000 NA 20
4 7839 KING PRESIDENT NA 1981-11-17 5000 NA 10
5 7902 FORD ANALYST 7566 1981-12-03 3000 NA 20
5. R sqldf Package
현재 급여(‘sal’)에서 20% 추가 인상한 값이 3000보다 큰 직원의 정보를 출력한다.
R Programming |
%%R
sqldf(" select *
from emp
where sal*120/100 >= 3000;")
Results |
empno ename job mgr hiredate sal comm deptno
1 7566 JONES MANAGER 7839 1981-04-02 2975 NA 20
2 7698 BLAKE MANAGER 7839 1981-03-01 2850 NA 30
3 7788 SCOTT ANALYST 7566 1982-12-09 3000 NA 20
4 7839 KING PRESIDENT NA 1981-11-17 5000 NA 10
5 7902 FORD ANALYST 7566 1981-12-03 3000 NA 20
6. Python pandasql Package
급여(‘sal’)를 20% 추가 인상한 값이 3000보다 큰 직원의 정보를 출력한다.
Python Programming |
ps.sqldf("select * from emp where sal*120/100 >= 3000;")
Results |
empno | ename | job | mgr | hiredate | sal | comm | deptno |
7566 | JONES | MANAGER | 7839.0 | 1981/04/02 | 2975 | None | 20 |
7698 | BLAKE | MANAGER | 7839.0 | 1981/03/01 | 2850 | None | 30 |
7788 | SCOTT | ANALYST | 7566.0 | 1982/12/09 | 3000 | None | 20 |
7839 | KING | PRESIDENT | NaN | 1981/11/17 | 5000 | None | 10 |
7902 | FORD | ANALYST | 7566.0 | 1981/12/03 | 3000 | None | 20 |
7. R data.table Package
현재 급여(‘sal’)에서 20% 추가 인상한 값이 3000보다 큰 직원의 정보를 출력한다.
R Programming |
%%R
DT <- data.table(emp)
dept_DT <- data.table(dept)
salgrade_DT <- data.table(salgrade)
DT[ (sal*120/100) >= 3000 , ]
Results |
empno ename job mgr hiredate sal comm deptno
1: 7566 JONES MANAGER 7839 1981-04-02 2975 NA 20
2: 7698 BLAKE MANAGER 7839 1981-03-01 2850 NA 30
3: 7788 SCOTT ANALYST 7566 1982-12-09 3000 NA 20
4: 7839 KING PRESIDENT NA 1981-11-17 5000 NA 10
5: 7902 FORD ANALYST 7566 1981-12-03 3000 NA 20
8. SAS Proc SQL
급여(‘sal’)를 20% 추가 인상한 값이 3000보다 큰 직원의 정보를 출력한다.
SAS Programming |
%%SAS sas
PROC SQL;
CREATE TABLE STATSAS_1 AS
select *
from emp
where sal*120/100 >= 3000;
QUIT;
PROC PRINT;RUN;
Results |
empno | ename | job | mgr | hiredate | sal | comm | deptno |
7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975 | . | 20 |
7698 | BLAKE | MANAGER | 7839 | 1981-03-01 | 2850 | . | 30 |
7788 | SCOTT | ANALYST | 7566 | 1982-12-09 | 3000 | . | 20 |
7839 | KING | PRESIDEN | . | 1981-11-17 | 5000 | . | 10 |
7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000 | . | 20 |
9. SAS Data Step
급여(‘sal’)를 20% 추가 인상한 값이 3000보다 큰 직원의 정보를 출력한다.
SAS Programming |
%%SAS sas
DATA STATSAS_2;
Set EMP;
where sal*120/100 >= 3000;
RUN;
PROC PRINT;RUN;
Results |
empno | enmae | job | mgr | hiredate | sal | comm | deptno |
7566 | JONES | MANAGER | 7839 | 1981-04-02 | 2975 | . | 20 |
7698 | BLAKE | MANAGER | 7839 | 1981-03-01 | 2850 | . | 30 |
7788 | SCOTT | ANALYST | 7566 | 1982-12-09 | 3000 | . | 20 |
7839 | KING | PRESIDEN | . | 1981-11-17 | 5000 | . | 10 |
7902 | FORD | ANALYST | 7566 | 1981-12-03 | 3000 | . | 20 |
10. Python Dfply Package
Python Programming |
emp >> filter_by( X.sal*120/100 >= 3000 )
Results |
empno | ename | job | mgr | hiredate | sal | comm | deptno |
7566 | JONES | MANAGER | 7839.0 | 1981/04/02 | 2975 | NaN | 20 |
7698 | BLAKE | MANAGER | 7839.0 | 1981/03/01 | 2850 | NaN | 30 |
7788 | SCOTT | ANALYST | 7566.0 | 1982/12/09 | 3000 | NaN | 20 |
7839 | KING | PRESIDENT | NaN | 1981/11/17 | 5000 | NaN | 10 |
7902 | FORD | ANALYST | 7566.0 | 1981/12/03 | 3000 | NaN | 20 |
[SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 전처리 방법 리스트
반응형
'통계프로그램 비교 시리즈 > 프로그래밍비교(Oracle,Python,R,SAS)' 카테고리의 다른 글
[데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - 비교 연산자(=) - 92 (0) | 2022.09.27 |
---|---|
[데이터 추출] 내부 조인(Inner Join)을 만족하는 데이터 추출 - 91 (0) | 2022.09.27 |
[데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - 비교 연산자(=) - 89 (1) | 2022.09.26 |
[문자 함수] 문자 검색 함수 - 88 (1) | 2022.09.26 |
[문자 함수] 문자 길이 측정 - 87 (1) | 2022.09.26 |
댓글