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

SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 (SQL, Pandas, R Prog, Dplyr, Dfply, SQLDF, PANDASQL, DATA.TABLE, SAS, Proc Sql)

by 기서무나구물 2023. 10. 1.

포스팅 목차

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

     


    SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트(SQL, Pandas, R Prog, Dplyr, Dfply, SQLDF, PANDASQL, DATA.TABLE, SAS, Proc Sql)

     


    • 부서정보(DEPT) 테이블에서 부서 정보를 출력하시오.
    • 데이터세트(테이블) 출력
    프로그램 프로그램 구문 및 함수
    Oracle select 구문
    파이썬 Pandas 데이터프레임 출력
    R 프로그래밍 데이터프레임 출력
    R - Dplyr print()
    R - Sqldf select 구문
    Python - Pandasql select 구문
    R - Data.table Data.table 변환 및 출력
    SAS - Proc SQL Select 구문
    SAS - Data Step Proc Print
    Python - Base 프로그래밍 display 구문
    Python - DuckDB  

     


    • 사원정보(EMP)에서 모든 직원의 정보를 출력하시오.
    • 데이터세트(테이블) 출력
    프로그램 프로그램 구문 및 함수
    Oracle select 구문
    파이썬 Pandas display 구문
    R 프로그래밍 print 구문
    R - Dplyr print()
    R - Sqldf select 구문
    Python - Pandasql select 구문
    R - Data.table Data.table 변환 및 출력
    SAS - Proc SQL Select 구문
    SAS - Data Step Proc Print
    Python - Dfply display 구문
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 등록된 직원의 이름과 직무를 출력하시오.
    • [변수 선택] 특정 변수를 지정하여서 출력
    프로그램 프로그램 구문 및 함수
    Oracle select 구문
    파이썬 Pandas 열 인덱싱 [,]
    R 프로그래밍 열 인덱싱 [,]
    R - Dplyr Select 구문
    R - Sqldf Select 구문
    Python - Pandasql Select 구문
    R - Data.table 열 인덱싱 [,]
    SAS - Proc SQL Select 구문
    SAS - Data Step Proc Print , Keep 구문
    Python - Dfply select 구문
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    4. Display name and salary for all employees.

    • 근무하는 모든 직원의 이름과 급여를 출력하시오.
    • [변수 선택] 특정 변수를 지정하여서 출력
    프로그램 프로그램 구문 및 함수
    Oracle select 구문
    파이썬 Pandas 열 인덱싱 [,]
    R 프로그래밍 열 인덱싱 [,]
    R - Dplyr Select 구문
    R - Sqldf Select 구문
    Python - Pandasql select 구문
    R - Data.table 열 인덱싱 [,]
    SAS - Proc SQL select 구문
    SAS - Data Step Proc Print의 By 구문 , Keep 구문
    Python - Dfply select 구문
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 개별 직원의 사원명과 수수료를 고려한 급여를 출력하시오.
    • [변수 생성] 신규 변수를 생성하여 출력
    프로그램 프로그램 구문 및 함수
    Oracle select 구문
    파이썬 Pandas 열 생성
    R 프로그래밍 열 생성
    R - Dplyr mutate 구문
    R - Sqldf select 구문
    Python - Pandasql select 구문
    R - Data.table 열 생성
    SAS - Proc SQL Select 구문
    SAS - Data Step 변수 생성
    Python - Dfply mutate 구문
    Python - Base 프로그래밍  
    Python - DuckDB Select 구문

     


    • 모든 직원에 대한 사원명과 1년 연봉을 출력하시오.
    • [변수 생성 & 결측치 대체] 결측치 대체 후 신규 변수 생성
    프로그램 프로그램 구문 및 함수
    Oracle nvl 함수, select 구문
    파이썬 Pandas replace 함수, 열 생성
    R 프로그래밍 ifelse 함수, replace_na 함수, 열 생성
    R - Dplyr ifelse 함수, mutate 구문
    R - Sqldf ifnull 함수, select 구문
    Python - Pandasql ifnull 함수, select 구문
    R - Data.table ifelse 함수, 열 생성
    SAS - Proc SQL coalesce 함수, ifn 함수, Select 구문
    SAS - Data Step coalesce 함수, ifn 함수, 변수 생성
    Python - Dfply replace 함수, mutate 구문
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 부서번호 10에 근무하는 직원들의 이름을 출력하시오.
    • [관측치 선택] 조건문을 만족하는 관측치 출력
    프로그램 프로그램 구문 및 함수
    Oracle where 구문
    파이썬 Pandas 행 인덱싱, query 구문
    R 프로그래밍 행 인덱싱, which 구문, subset 구문
    R - Dplyr filter 구문
    R - Sqldf where 구문
    Python - Pandasql where 구문
    R - Data.table 행 인덱싱
    SAS - Proc SQL where 구문
    SAS - Data Step where 구문, IF 구문
    Python - Dfply filter_by 구문
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 판매직 직원 중에서 3000 이상 급여를 수령하는 직원들의 이름을 출력하시오.
    • [관측치 선택] 복수의 조건문을 만족하는 관측치 출력
    프로그램 프로그램 구문 및 함수
    Oracle where 구문
    파이썬 Pandas 행 인덱싱, query 구문
    R 프로그래밍 행 인덱싱, which 구문, subset 구문
    R - Dplyr filter 구문
    R - Sqldf where 구문
    Python - Pandasql where 구문
    R - Data.table 행 인덱싱
    SAS - Proc SQL where 구문
    SAS - Data Step where 구문, IF 구문
    Python - Dfply filter_by 구문, mask 구문
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 커미션이 지급되는 직원에 대한 사원번호와 사원명을 출력하시오.
    • [관측치 & 변수 선택] 조건문을 만족하는 관측치 선택 후 특정 변수 출력
    프로그램 프로그램 구문 및 함수
    Oracle where 구문, is not null 연산자
    파이썬 Pandas 행 인덱싱, query 구문, notnull() 함수
    R 프로그래밍 행 인덱싱, which 구문, subset 구문, is.na() 함수, which() 함수
    R - Dplyr filter 구문
    R - Sqldf where 구문
    Python - Pandasql where 구문
    R - Data.table 행 인덱싱, is.na() 함수
    SAS - Proc SQL where 구문
    SAS - Data Step where 구문, IF 구문
    Python - Dfply filter_by 구문, mask 구문, notnull() 함수
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 커미션이 지급되지 않는 직원들의 이름을 출력하시오.
    • [Or 연산자] Null 데이터 선택과 Or 연산자
    프로그램 프로그램 구문 및 함수
    Oracle where 구문, is null, Or 연산자
    파이썬 Pandas 슬라이싱(Slicing), .loc, isnull(), Or 연산자(|)
    R 프로그래밍 query() 구문, isnull(), Or 연산자(|)
    R - Dplyr 슬라이싱(Slicing), which 구문, Or 연산자(|), is.na
    R - Sqldf where 구문, is null, Or 연산자
    Python - Pandasql where 구문, is null, Or 연산자
    R - Data.table 슬라이싱(Slicing), is.na, Or 연산자
    SAS - Proc SQL where 구문, Or 연산자
    SAS - Data Step where 구문, IF 조건문, Or 연산자
    Python - Dfply filter_by, mask 구문, isnull()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 판매직, 영업직 또는 분석직 직무를 수행하고 3000 이상의 급여를 수령하는 직원들의 이름을 출력하시오.
    • [다중 OR / AND 연산자] 복수의 OR 연산자와 AND 연산자
    프로그램 프로그램 구문 및 함수
    Oracle where 구문, OR/AND 연산자
    파이썬 Pandas 슬라이싱(Slicing), .loc, .query 구문, isin(), & 연산자, in 연산자
    R 프로그래밍 슬라이싱(Slicing), subset() 구문, which 함수, %in% 연산자, & 연산자
    R - Dplyr filter() 함수, %in% 연산자, & 연산자
    R - Sqldf where 구문, in 연산자, AND 연산자
    Python - Pandasql where 구문, in 연산자, AND 연산자
    R - Data.table 슬라이싱(Slicing), %in%, &연산자
    SAS - Proc SQL where 구문, Or 연산자, and 연산자
    SAS - Data Step where 구문, IF 조건문, Or 연산자, and 연산자
    Python - Dfply filter_by, isin 연산자
    Python - Base 프로그래밍  
    Python - DuckDB  

     

     


    • 39년 이상 근속한 직원들의 이름을 출력하시오.
    • [날짜 데이터] 근속 기간 계산 후 데이터 필터 - 현재 날짜, 날짜 기간 차이 계산
    프로그램 프로그램 구문 및 함수
    Oracle sysdate
    파이썬 Pandas 날짜 형변환, pd.to_datetime(), datetime.strptime, relativedelta.relativedelta, now.date(), datetime.datetime.utcnow(), pd.Timestamp.now(), .query 구문
    R 프로그래밍 Sys.Date(), difftime 함수, as.numeric
    R - Dplyr filter 구문, Sys.Date()
    R - Sqldf 날짜 인수, sprintf, Sys.Date(), strftime 함수, 파라미터 처리, gsubfn 패키지(gsubfn::fn$sqldf) 외부 변수 참조
    Python - Pandasql format 구문, 반복구문 처리, 형변환(cast 함수), 날짜 형변환
    R - Data.table Sys.Date()
    SAS - Proc SQL TODAY() 함수, datdif 함수
    SAS - Data Step TODAY() 함수, datdif 함수
    Python - Dfply filter_by, 사용자함수 정의, pd.Timestamp.now(), to_datetime 함수, make_symbolic 함수
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 1981년 1월 09일부터 1981년 11월 17일 사이에 입사한 직원들의 정보를 출력하시오.
    • [데이터 필터] 지정한 날짜에 속하는 데이터 추출
    프로그램 프로그램 구문 및 함수
    Oracle 날짜를 문자형 날짜로 변환(TO_CHAR), between 연산자
    파이썬 Pandas between 연산자, .query() 구문
    R 프로그래밍 & 연산자, which 함수, subset() 구문
    R - Dplyr filter() 함수, as.Date() 함수, between 함수
    R - Sqldf as.numeric() 함수, gsubfn::fn$sqldf - 외부 변수 참조, strftime() 함수, 날짜형 데이터를 문자형 날짜로 변환
    Python - Pandasql between 연산자
    R - Data.table 슬라이싱(Slicing)
    SAS - Proc SQL between 연산자
    SAS - Data Step between 연산자, put() 함수
    Python - Dfply filter_by() 함수, mask() 함수, between() 함수
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 현재 날짜를 출력하시오.
    • [데이터 필터] 현재 날짜를 출력하기 위한 다양한 방법 구현
    프로그램 프로그램 구문 및 함수
    Oracle sysdate, to_char
    파이썬 Pandas datetime.now(), datetime.today, time.time(), time.strftime(), time.localtime() 함수
    R 프로그래밍 Sys.Date(), lubridate::today() 함수
    R - Dplyr  
    R - Sqldf strftime 함수, now
    Python - Pandasql strftime() 함수, date() 함수, now
    R - Data.table  
    SAS - Proc SQL TODAY() 함수, put 함수
    SAS - Data Step TODAY() 함수, put 함수
    Python - Dfply mutate 함수, datetime.now(),datetime.today(), to_datetime(), .astype(), strftime() 함수
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 부서번호 10, 20, 40에 근무하거나 판매직, 영업직, 분석직으로 근무하고 있는 직원들의 이름을 출력하시오.
    • [데이터 필터링] 복수의 OR 연산자
    프로그램 프로그램 구문 및 함수
    Oracle in 연산자, Or 연산자
    파이썬 Pandas isin 연산자, or(|) 연산자, .loc, .query() 구문
    R 프로그래밍 %in% 연산자, or(|) 연산자, which() 함수, subset() 함수
    R - Dplyr filter() 구문, %in% 연산자
    R - Sqldf in 연산자, Or 연산자
    Python - Pandasql in 연산자, Or 연산자
    R - Data.table %in% 연산자, or(|) 연산자
    SAS - Proc SQL in 연산자, Or 연산자
    SAS - Data Step in 연산자, Or 연산자
    Python - Dfply filter_by(), or(|) 연산자
    Python - Base 프로그래밍 mask(), or(|) 연산자
    Python - DuckDB  

     


    • 직원명이 알파벳 ‘S’로 시작하는 직원의 이름을 출력하시오.
    • [문자열 검색(접두어) 및 문자열 함수] 특정 문자열이 포함된 데이터 추출
    프로그램 프로그램 구문 및 함수
    Oracle like, substr 함수
    파이썬 Pandas str.startswith(), str.endswith(), str.contains() 함수, .query() 구문
    R 프로그래밍 startsWith(), subset() 구문
    R - Dplyr startsWith(), filter() 구문, str_detect() 함수, grepl() 문자열 함수, filter_all, any_vars, str_detect() 함수
    R - Sqldf like 연산자
    Python - Pandasql like 연산자
    R - Data.table %like% 연산자, grepl() 함수
    SAS - Proc SQL like 연산자, substr 함수
    SAS - Data Step like 연산자, substr 함수
    Python - Dfply filter_by() 구문, mask() 구문, startswith() 함수,
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 직원명이 알파벳 ‘S’로 끝나는 직원들의 이름을 출력하시오.
    • [문자열 검색(접미어) 및 문자열 함수] 특정 문자열이 포함된 데이터 추출
    프로그램 프로그램 구문 및 함수
    Oracle like, substr 함수
    파이썬 Pandas str.endswith(), str.contains() 함수, .query() 구문
    R 프로그래밍 endsWith(), subset() 구문
    R - Dplyr endsWith(), filter() 구문, str_detect() 함수, grepl() 문자열 함수, filter_all, any_vars, str_detect() 함수
    R - Sqldf like 연산자
    Python - Pandasql like 연산자
    R - Data.table %like% 연산자, grepl() 함수, endsWith() 함수
    SAS - Proc SQL like 연산자, substr 함수
    SAS - Data Step like 연산자, substr 함수
    Python - Dfply filter_by() 구문, mask() 구문, endswith() 함수,
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 직원명의 2번째 문자가 알파벳 ‘L’인 직원들의 이름을 출력하시오.
    • [문자열 검색 및 문자열 함수] 특정 문자열이 포함된 데이터 추출
    프로그램 프로그램 구문 및 함수
    Oracle like, substr 함수
    파이썬 Pandas .str.match() 함수, .loc(), .query()
    R 프로그래밍 substr(), grep() 함수, stringr::str_detect(), stringr::str_sub() 함수, which(), subset()
    R - Dplyr stringr::str_detect(), base::grepl() 함수, filter()
    R - Sqldf like 연산자
    Python - Pandasql like 연산자
    R - Data.table grepl() 함수
    SAS - Proc SQL like 연산자, substr 함수
    SAS - Data Step like 연산자, substr 함수
    Python - Dfply filter_by() 구문, mask() 구문, str.match() 함수
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    22. Display the names of employees whose name is exactly five characters in length.

    • 사원명이 5글자인 직원들의 이름을 출력하시오.
    • [문자 함수] 특정 문자열의 길이를 측정 - Length 함수
    프로그램 프로그램 구문 및 함수
    Oracle like, length 함수
    파이썬 Pandas str.match(), str.len() 함수, .loc(), .query()
    R 프로그래밍 grep(), stringr::str_length(), stringr::str_detect(), nchar() 함수, as.character(), subset()
    R - Dplyr grepl(), stringr::str_length(), stringr::str_detect() 함수, dplyr::filter(), nchar() 함수, as.character()
    R - Sqldf length 함수
    Python - Pandasql length 함수
    R - Data.table str_length() 함수
    SAS - Proc SQL like 연산자, length() 함수
    SAS - Data Step like 연산자, length() 함수
    Python - Dfply filter_by() 구문, mask() 구문, str.len() 함수
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 관리자 역할(mgr 변수 기준)을 수행하지 않는 직원의 이름을 출력하시오
    • [데이터 필터링 & 서브쿼리] 서브쿼리 기반의 데이터 필터링
    프로그램 프로그램 구문 및 함수
    Oracle minus 연산자, not in 연산자, 상관 서브쿼리
    파이썬 Pandas not(~) 연산자, isin() 함수, np.isin() 함수, query() 함수
    R 프로그래밍 not(!) 연산자, %in% 연산자, which() 함수, substr() 연산자, dplyr::setdiff() 차집합 함수
    R - Dplyr %in% 연산자, dplyr::anti_join() 차집합 함수
    R - Sqldf not in 연산자, 상관서브쿼리
    Python - Pandasql not in 연산자, 상관서브쿼리
    R - Data.table %in% 연산자, 셀프조인, nomatch 옵션, merge() 함수
    SAS - Proc SQL not in 연산자, 상관서브쿼리, Left join 방식
    SAS - Data Step Left join 방식의 Merge 구문
    Python - Dfply filter_by 방식, .isin() 함수
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    24. Display the names of employees who are not working as SALESMAN or CLERK or ANALYST.

    • 영업직, 판매직, 분석직을 제외한 직무로 근무하고 있는 직원들의 이름을 출력하시오.
    • [데이터 필터링 & 서브쿼리] 서브쿼리 기반의 데이터 필터링
    프로그램 프로그램 구문 및 함수
    Oracle not in 연산자
    파이썬 Pandas not(~) 연산자, isin() 함수, 슬라이싱(Slicing), .query(), not in 연산자
    R 프로그래밍 not(!) 연산자, %in% 연산자, which() 함수, subset() 구문
    R - Dplyr filter() 함수, %in%, %nin% 연산자
    R - Sqldf not in 연산자
    Python - Pandasql not in 연산자
    R - Data.table %in% 연산자
    SAS - Proc SQL not in 연산자
    SAS - Data Step not in 연산자
    Python - Dfply filter_by(), mask() 함수, isin() 함수
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 회사에서 근무하는 총직원의 수를 집계하시오.
    • [집계함수] 데이터 건수, 데이터 기초 분석을 위한 기초 통계량 측정
    프로그램 프로그램 구문 및 함수
    Oracle count() , distinct
    파이썬 Pandas len(), count(), describe(), nunique(), agg() 함수
    R 프로그래밍 nrow(), length(), dim(), str(), summary(), psych::describe(), psych::describeData()
    R - Dplyr summarise(), n(), tally(), count()
    R - Sqldf count() , distinct
    Python - Pandasql count() , distinct
    R - Data.table .N
    SAS - Proc SQL count() , distinct, dictionary.tables, nobs
    SAS - Data Step nobs, retain, ARRAY, SUM(), cmiss(), PROC SUMMARY
    Python - Dfply summarize(), .count(), .nunique(), len()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    27. Display the total salary being paid to all employees.

    • 수수료를 포함한 모든 직원에게 지급되는 총 급여를 계산하시오.
    • [집계함수] 수치형 데이터 합계 계산, 결측치 대체
    프로그램 프로그램 구문 및 함수
    Oracle sum(), nvl()
    파이썬 Pandas sum, replace()
    R 프로그래밍 sum(), ifelse(), replace_na()
    R - Dplyr dplyr::summarise(), ifelse()
    R - Sqldf sum(), ifnull()
    Python - Pandasql sum(), ifnull()
    R - Data.table sum(), ifelse
    SAS - Proc SQL sum(), ifn(), coalesce()
    SAS - Data Step proc summary, sum=, coalesce, ifn
    Python - Dfply summarize(), .replace()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 직원들에게 지급되는 급여 중 최대 급여를 계산하시오.
    • [집계함수] 수치형 데이터 최대값 측정
    프로그램 프로그램 구문 및 함수
    Oracle max()
    파이썬 Pandas max()
    R 프로그래밍 max()
    R - Dplyr dplyr::summarise(), max()
    R - Sqldf max()
    Python - Pandasql max()
    R - Data.table max()
    SAS - Proc SQL max()
    SAS - Data Step proc summary, max=
    Python - Dfply summarize(), .max()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 직원들에게 지급되는 급여 중 최소 급여를 계산하시오.
    • [집계함수] 수치형 데이터 최소값 측정
    프로그램 프로그램 구문 및 함수
    Oracle min()
    파이썬 Pandas min()
    R 프로그래밍 min()
    R - Dplyr dplyr::summarise(), min()
    R - Sqldf min()
    Python - Pandasql min()
    R - Data.table min()
    SAS - Proc SQL min()
    SAS - Data Step proc summary, min=
    Python - Dfply summarize(), .min()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 직원들에게 지급되는 평균 급여(급여의 평균)을 계산하시오.
    • [집계함수] 수치형 데이터 평균값 측정
    프로그램 프로그램 구문 및 함수
    Oracle avg()
    파이썬 Pandas mean()
    R 프로그래밍 mean()
    R - Dplyr dplyr::summarise(), mean()
    R - Sqldf avg()
    Python - Pandasql avg()
    R - Data.table mean()
    SAS - Proc SQL avg()
    SAS - Data Step proc summary, mean=
    Python - Dfply summarize(), .mean()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 판매직 직무로 근무하는 직원들에게 지급되는 최대 급여를 출력하시오.
    • [집계함수] 조건절을 만족하는 수치형 데이터 최대값 측정
    프로그램 프로그램 구문 및 함수
    Oracle max()
    파이썬 Pandas .query(), max()
    R 프로그래밍 max(), subset()
    R - Dplyr dplyr::summarise(), max(), filter()
    R - Sqldf max()
    Python - Pandasql max()
    R - Data.table max()
    SAS - Proc SQL max()
    SAS - Data Step proc summary, max=
    Python - Dfply summarize(), .max(), filter_by()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


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

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

     


    * 영업직으로 근무하는 직원들에게 지급되는 최소 급여를 출력하시오.

    • [집계함수] 조건절을 만족하는 수치형 데이터 최소값 측정
    프로그램 프로그램 구문 및 함수
    Oracle min()
    파이썬 Pandas min(), .query()
    R 프로그래밍 min(), subset()
    R - Dplyr filter(), dplyr::summarise(), min()
    R - Sqldf min()
    Python - Pandasql min()
    R - Data.table min()
    SAS - Proc SQL min()
    SAS - Data Step proc summary, min=
    Python - Dfply filter_by(), summarize(), .min()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    * 관리자에게 지급되는 평균 급여를 집계하시오.

    • [집계함수] 조건절을 만족하는 수치형 데이터 평균값 측정
    프로그램 프로그램 구문 및 함수
    Oracle avg()
    파이썬 Pandas mean(), query()
    R 프로그래밍 colMeans(), subset()
    R - Dplyr filter(), dplyr::summarise(), mean()
    R - Sqldf avg()
    Python - Pandasql avg()
    R - Data.table mean()
    SAS - Proc SQL avg()
    SAS - Data Step proc summary, mean=
    Python - Dfply filter_by(), summarize(), .mean()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    * 부서번호 30에 근무하는 직원의 수수료를 고려한 급여를 계산하시오.

    • [집계함수] 조건절을 만족하는 수치형 데이터 합계 계산, 결측치 대체
    프로그램 프로그램 구문 및 함수
    Oracle sum(), nvl()
    파이썬 Pandas sum, replace()
    R 프로그래밍 sum(), ifelse(), replace_na()
    R - Dplyr filter(), dplyr::summarise(), ifelse()
    R - Sqldf sum(), ifnull()
    Python - Pandasql sum(), ifnull()
    R - Data.table sum(), ifelse()
    SAS - Proc SQL sum(), ifn(), coalesce()
    SAS - Data Step proc summary, sum=, coalesce, ifn
    Python - Dfply filter_by(), summarize(), .replace()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    * emp테이블에서 근무하는 직원의 급여를 기준으로 오름차순(작은 급여 우선)으로 정렬하고 해당 직원의 이름을 출력하시오.

    • [데이터 정렬] 수치형 데이터를 기준으로 오름차순 정렬
    프로그램 프로그램 구문 및 함수
    Oracle order by
    파이썬 Pandas sort_values()
    R 프로그래밍 order()
    R - Dplyr dplyr::arrange()
    R - Sqldf order by
    Python - Pandasql order by
    R - Data.table order()
    SAS - Proc SQL order by
    SAS - Data Step proc sort
    Python - Dfply arrange()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


     

    * emp테이블에서 근무하는 직원의 급여를 기준으로 내림차순(급여액이 큰 값 우선)으로 정렬하고 해당 직원의 이름을 출력하시오.

    • [데이터 정렬] 수치형 데이터를 기준으로 내림차순 정렬
    프로그램 프로그램 구문 및 함수
    Oracle order by, desc
    파이썬 Pandas sort_values(), ascending=
    R 프로그래밍 order(), decreasing=
    R - Dplyr dplyr::arrange(), desc()
    R - Sqldf order by, desc
    Python - Pandasql order by, desc
    R - Data.table order(), desc()
    SAS - Proc SQL order by, desc
    SAS - Data Step proc sort, DESCENDING
    Python - Dfply arrange(), ascending=
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    * emp테이블에서 근무하는 직원의 이름을 기준으로 오름차순(‘a’ 문자 우선)으로 정렬하고 해당 직원의 이름을 출력하시오.

    • [데이터 정렬] 문자형 데이터를 기준으로 오름차순 정렬
    프로그램 프로그램 구문 및 함수
    Oracle order by
    파이썬 Pandas sort_values()
    R 프로그래밍 order()
    R - Dplyr dplyr::arrange()
    R - Sqldf order by
    Python - Pandasql order by
    R - Data.table order()
    SAS - Proc SQL order by
    SAS - Data Step proc sort
    Python - Dfply arrange()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    * emp테이블에서 근무하는 직원의 이름, 부서번호, 급여를 기준으로 오름차순으로 정렬하고 해당 직원의 정보를 출력하시오.

    • [데이터 다중 정렬] 여러 개의 정렬 키를 기준으로 데이터 정렬
    프로그램 프로그램 구문 및 함수
    Oracle order by
    파이썬 Pandas sort_values()
    R 프로그래밍 order()
    R - Dplyr dplyr::arrange()
    R - Sqldf order by
    Python - Pandasql order by
    R - Data.table order()
    SAS - Proc SQL order by
    SAS - Data Step proc sort
    Python - Dfply arrange()
    Python - Base 프로그래밍  
    Python - DuckDB  

     

     


    • emp 테이블에서 근무하는 직원의 연봉(급여*12)를 기준으로 내림차순(연봉이 큰 값 우선)으로 정렬하고 해당 직원의 이름을 출력하시오
    • [데이터 정렬] 신규로 생성된 정렬 키를 기준으로 데이터 내림차순 정렬
    프로그램 프로그램 구문 및 함수
    Oracle order by, nvl(), desc
    파이썬 Pandas sort_values(), replace(), .fillna(), ascending=
    R 프로그래밍 order(), ifelse(), is.na(), transform(), descending(-)
    R - Dplyr dplyr::arrange(), desc(), dplyr::mutate, ifelse
    R - Sqldf order by, ifnull(), desc
    Python - Pandasql order by, ifnull(), desc
    R - Data.table order(), ifelse(), is.na(), desc()
    SAS - Proc SQL order by, desc
    SAS - Data Step proc sort, DESCENDING
    Python - Dfply arrange(), sort_values(), ascending=, .replace()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 아래의 수식을 사용하여서 총급여를 계산하시오.
    • HRA = sal * 15% , PF = sal * 5%, DA = sal * 10%
    • 총급여 = (sal + HRA + DF) - PF
    • [신규 변수 생성] 복잡한 연산 작업 수행
    프로그램 프로그램 구문 및 함수
    Oracle  
    파이썬 Pandas .assign(), lambda() 함수
    R 프로그래밍 transform() 함수
    R - Dplyr dplyr::mutate()
    R - Sqldf  
    Python - Pandasql  
    R - Data.table 복수의 변수 생성
    SAS - Proc SQL  
    SAS - Data Step keep
    Python - Dfply mutate(), select()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 개별 부서에 근무하는 직원의 총 인원수를 출력하시요.
    • [그룹별 집계함수] 그룹별 건수 집계
    프로그램 프로그램 구문 및 함수
    Oracle count(*)
    파이썬 Pandas groupby(), describe(), reset_index(), size(), agg(), pd.series.nunique, value_counts(), subset=, rp.summary_cont(), groupby
    R 프로그래밍 aggregate(), length, function, table, tapply
    R - Dplyr dplyr::group_by(), dplyr::count(), tally()
    R - Sqldf group by, count(*)
    Python - Pandasql group by, count(*)
    R - Data.table .N, keyby=
    SAS - Proc SQL group by, count(*)
    SAS - Data Step proc summary, N=
    Python - Dfply group_by(), summarize(), .count()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 개별 직무에 속한 직원의 총 인원수를 출력하시오.
    • [그룹별 집계함수] 그룹별 건수 집계
    프로그램 프로그램 구문 및 함수
    Oracle group by, count(*)
    파이썬 Pandas groupby(), describe(), reset_index(), size(), agg(), pd.series.nunique, value_counts(), subset=, rp.summary_cont(), groupby
    R 프로그래밍 aggregate(), length, function, table, tapply
    R - Dplyr dplyr::group_by(), dplyr::count(), tally()
    R - Sqldf group by, count(*)
    Python - Pandasql group by, count(*)
    R - Data.table .N, keyby=
    SAS - Proc SQL group by, count(*)
    SAS - Data Step proc summary, N=, first., last.
    Python - Dfply group_by(), summarize(), .count(), .nunique(), .n()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    44. Display department numbers and total salary for each department.

    • 개별 부서에 근무하는 직원의 총 급여를 집계하여서 출력하시요.
    • [그룹별 집계함수] 그룹별 합계 집계
    프로그램 프로그램 구문 및 함수
    Oracle group by, sum()
    파이썬 Pandas groupby(), describe(), reset_index(), agg()
    R 프로그래밍 aggregate(), list, sum, function
    R - Dplyr dplyr::group_by(), dplyr::summarise(), sum()
    R - Sqldf group by, sum()
    Python - Pandasql group by, sum()
    R - Data.table sum(), list
    SAS - Proc SQL group by, sum()
    SAS - Data Step proc summary, sum=, first., last.
    Python - Dfply group_by(), summarize(), .sum()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 개별 부서에 근무하는 직원의 최대 급여와 최소 급여를 출력하시요.
    • 그룹별 최소값 집계 : 45번, 47번
    • [그룹별 집계함수] 그룹별 최대값과 최소값 집계
    프로그램 프로그램 구문 및 함수
    Oracle group by, min(), max()
    파이썬 Pandas groupby(), agg(), reset_index(), np.min, np.max
    R 프로그래밍 aggregate(), list, min, max, 사용자 정의 함수, aggregate(), plyr::each()
    R - Dplyr dplyr::group_by(), dplyr::summarise, min(), max()
    R - Sqldf group by, min(), max()
    Python - Pandasql group by, min(), max()
    R - Data.table min(), max(), by=
    SAS - Proc SQL group by, min(), max()
    SAS - Data Step proc summary, min=, max()=, first., last.
    Python - Dfply group_by(), summarize(), .min(), .max()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 개별 직무 속한 직원들의 총 급여를 계산하시오
    • 그룹별 합계 : 45번, 46번
    • [그룹별 집계함수] 그룹별 합계 집계
    프로그램 프로그램 구문 및 함수
    Oracle group by, sum()
    파이썬 Pandas groupby(), describe(), reset_index(), agg()
    R 프로그래밍 aggregate(), list, sum, 사용자 정의 함수(function)
    R - Dplyr dplyr::group_by(), dplyr::summarise(), sum()
    R - Sqldf group by, sum()
    Python - Pandasql group by, sum()
    R - Data.table sum(), list, keyby=
    SAS - Proc SQL group by, sum()
    SAS - Data Step proc summary, sum=, first., last.
    Python - Dfply group_by(), summarize(), .sum()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 개별 직무에 속한 직원들에게 지급되는 급여 중에서 최소 급여를 출력하시오.
    • 그룹별 최소값 집계 : 45번, 47번
    • [그룹별 집계함수] 그룹별 최소값 집계
    프로그램 프로그램 구문 및 함수
    Oracle group by, min()
    파이썬 Pandas groupby(), agg(), reset_index()
    R 프로그래밍 aggregate(), min, 사용자 정의 함수
    R - Dplyr dplyr::group_by(), dplyr::summarise, min()
    R - Sqldf group by, min()
    Python - Pandasql group by, min()
    R - Data.table min(), by=
    SAS - Proc SQL group by, min()
    SAS - Data Step proc summary, min=, first., last.
    Python - Dfply group_by(), summarize(), .min(), .max()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 개별 부서에 속한 직원의 숫자가 3명 이상인 부서만 출력하라.
    • [그룹별 집계함수와 조건식] 그룹별 건수 집계 후 조건절에 만족하는 그룹 선택
    프로그램 프로그램 구문 및 함수
    Oracle group by, count(*), having
    파이썬 Pandas groupby(), .count(), .query(), .count(), .loc, 슬라이싱(Slicing), .max()
    R 프로그래밍 aggregate(), 사용자 정의 함수, length, function, subset()
    R - Dplyr dplyr::group_by(), dplyr::summarise(), n(), filter()
    R - Sqldf group by, count(*), having
    Python - Pandasql group by, count(*), having
    R - Data.table .N, keyby=. .SD (Subset)
    SAS - Proc SQL group by, count(*), having
    SAS - Data Step proc summary, N=, where=, first., last.
    Python - Dfply group_by(), summarize(), .count(), .nunique(), .n(), ungroup(), filter_by()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    49. Display the various jobs along with total sal for each of the jobs where total sal is greater than 4000.

    • 개별 직무별 급여 합계를 구한 후 그 합계값이 5000 초과인 직무와 급여 합계를 출력하시오.
    • [데이터 추출] having 절
    프로그램 프로그램 구문 및 함수
    Oracle having 절
    파이썬 Pandas groupby(), .query(), agg(), filter()
    R 프로그래밍 aggregate(), subset()
    R - Dplyr group_by(), summarise(), filter()
    R - Sqldf having 절
    Python - Pandasql having 절
    R - Data.table .SD (Subset of Dataframe) , keyby
    SAS - Proc SQL having 절
    SAS - Data Step PROC SUMMARY, where 구문, FIRST.
    Python - Dfply group_by(), summarize(), filter_by()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 개별 직무에 속한 직원의 숫자가 3명 이상인 부서만 출력하라.
    • [데이터 추출] having count() 구문
    프로그램 프로그램 구문 및 함수
    Oracle having count(*) 절
    파이썬 Pandas groupby(), .query(), agg(), filter()
    R 프로그래밍 aggregate(), subset(), FUN = function(x) (사용자 정의 함수)
    R - Dplyr group_by(), summarise(), filter(),
    R - Sqldf having count(*) 절
    Python - Pandasql having count(*) 절
    R - Data.table .SD (Subset of Dataframe) , keyby
    SAS - Proc SQL having count(*) 절
    SAS - Data Step PROC SUMMARY, where 구문, FIRST.
    Python - Dfply group_by(), summarize(), filter_by(), ungroup()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 최대 연봉을 받는 직원의 정보를 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - 최대값(MAX)과 비교연산자
    프로그램 프로그램 구문 및 함수
    Oracle 서브쿼리(Subquery), max() 함수
    파이썬 Pandas max() 함수
    R 프로그래밍 max() 함수
    R - Dplyr filter(), max() 함수
    R - Sqldf 서브쿼리(Subquery), max() 함수
    Python - Pandasql 서브쿼리(Subquery), max() 함수
    R - Data.table max() 함수
    SAS - Proc SQL 서브쿼리(Subquery), max() 함수
    SAS - Data Step PROC RANK, obs
    Python - Dfply filter_by(), max() 함수
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 사무직 직원 중에서 최대 연봉을 받는 직원의 정보를 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - 최대값(MAX)과 비교연산자
    프로그램 프로그램 구문 및 함수
    Oracle 서브쿼리(Subquery), max() 함수
    파이썬 Pandas max() 함수
    R 프로그래밍 max() 함수
    R - Dplyr filter(), max() 함수, pull() : 벡터 추출, unique()
    R - Sqldf 서브쿼리(Subquery), max() 함수
    Python - Pandasql 서브쿼리(Subquery), max() 함수
    R - Data.table max() 함수
    SAS - Proc SQL 서브쿼리(Subquery), max() 함수
    SAS - Data Step PROC RANK, obs
    Python - Dfply filter_by(), max() 함수, @pipe (사용자 정의 함수)
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 사무직 직원의 최대 연봉보다 더 많은 연봉을 받는 판매직 직원의 정보를 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - 최대값(MAX)과 비교연산자
    프로그램 프로그램 구문 및 함수
    Oracle 서브쿼리(Subquery), max() 함수
    파이썬 Pandas max() 함수
    R 프로그래밍 max() 함수
    R - Dplyr filter(), max() 함수, pull() : 벡터 추출, unique()
    R - Sqldf 서브쿼리(Subquery), max() 함수
    Python - Pandasql 서브쿼리(Subquery), max() 함수
    R - Data.table max() 함수
    SAS - Proc SQL 서브쿼리(Subquery), max() 함수
    SAS - Data Step CROSS JOIN (카테시안 곱) 구현, Macro 변수
    Python - Dfply filter_by(), max() 함수, @dfpipe (사용자 정의 함수)
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 직원 ‘JAMES’ 의 급여보다 크고, 직원 ‘SCOTT’의 급여보다 적은 사무직 직원의 정보를 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - 비교연산자
    프로그램 프로그램 구문 및 함수
    Oracle 서브쿼리(Subquery), where 구문
    파이썬 Pandas iloc[], 비교구문
    R 프로그래밍 비교구문
    R - Dplyr filter(), pull() : 벡터 추출, unique()
    R - Sqldf 서브쿼리(Subquery), where 구문
    Python - Pandasql 서브쿼리(Subquery), where 구문
    R - Data.table 비교구분
    SAS - Proc SQL 서브쿼리(Subquery), where 구문
    SAS - Data Step CROSS JOIN (카테시안 곱) 구현, Macro 변수 할당
    Python - Dfply filter_by(), @dfpipe (사용자 정의 함수), 비교구분
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 직원 ‘JAMES’ 의 급여보다 크고, 직원 ‘SCOTT’의 급여보다 적은 직원의 정보를 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - 비교연산자
    프로그램 프로그램 구문 및 함수
    Oracle 서브쿼리(Subquery), where 구문
    파이썬 Pandas iloc[], 비교구문
    R 프로그래밍 비교구문
    R - Dplyr filter(), pull() : 벡터 추출, unique()
    R - Sqldf 서브쿼리(Subquery), where 구문
    Python - Pandasql 서브쿼리(Subquery), where 구문
    R - Data.table 비교구분
    SAS - Proc SQL 서브쿼리(Subquery), where 구문
    SAS - Data Step CROSS JOIN (카테시안 곱) 구현, Macro 변수 할당
    Python - Dfply filter_by(), @dfpipe (사용자 정의 함수), 비교구분
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 개별 부서에서 최고 급여를 받는 직원의 정보를 출력하시오.
    • [데이터 추출] 상관 서브쿼리(Correlated Subqueyr) 를 만족하는 데이터 추출 - 최대값(MAX)
    프로그램 프로그램 구문 및 함수
    Oracle 상관 서브쿼리(Subquery), where 구문
    파이썬 Pandas groupby(), agg(), pd.merge : 내부조인(Inner join), 비교구문
    R 프로그래밍 merge - 내부조인(Inner join), 비교구문, FUN = function(x) (사용자정의 함수), names() - 변수명 변경, tapply(), class(), ave(), subset(), boolean 연산자(!!)
    R - Dplyr inner_join() - 내부조인, group_by(), summarise()
    R - Sqldf 상관 서브쿼리(Subquery), where 구문
    Python - Pandasql 상관 서브쿼리(Subquery), where 구문
    R - Data.table merge - 내부조인, 비교구분, max() 함수
    SAS - Proc SQL 서브쿼리(Subquery), where 구문
    SAS - Data Step PROC SUMMARY, IF 조건문, PROC RANK, PROC SORT NODUPKEY
    Python - Dfply inner_join - 내부조인, group_by(), summarize(), merge(), inner_join_fun 사용자 정의 함수
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 개별 직무 내에서 최고 급여를 받는 직원의 정보를 출력하시오.
    • [데이터 추출] 상관 서브쿼리(Correlated Subqueyr) 를 만족하는 데이터 추출 - IN 연산자
    프로그램 프로그램 구문 및 함수
    Oracle 상관 서브쿼리(Subquery), where 구문
    파이썬 Pandas groupby(), agg(), pd.merge : 내부조인(Inner join), 비교구문
    R 프로그래밍 merge - 내부조인(Inner join), 비교구문, FUN = function(x) (사용자정의 함수), names() - 변수명 변경, tapply(), class(), ave(), subset(), boolean 연산자(!!)
    R - Dplyr inner_join() - 내부조인, group_by(), summarise()
    R - Sqldf 상관 서브쿼리(Subquery), where 구문
    Python - Pandasql 상관 서브쿼리(Subquery), where 구문
    R - Data.table merge - 내부조인, 비교구분, max() 함수
    SAS - Proc SQL 상관 서브쿼리(Subquery), where 구문
    SAS - Data Step PROC SUMMARY, IF 조건문, PROC RANK, PROC SORT NODUPKEY
    Python - Dfply inner_join - 내부조인, group_by(), summarize(), merge(), inner_join_fun 사용자 정의 함수
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 회계부서에서 근무하고 있는 직원들의 이름을 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - 비교연산자
    프로그램 프로그램 구문 및 함수
    Oracle 비상관 서브쿼리, in 연산자
    파이썬 Pandas isin()
    R 프로그래밍 %in%
    R - Dplyr filter(), %in%
    R - Sqldf 비상관 서브쿼리, in 연산자
    Python - Pandasql 비상관 서브쿼리, in 연산자
    R - Data.table %in%
    SAS - Proc SQL 비상관 서브쿼리, in 연산자
    SAS - Data Step 내부조인(Inner join), IF 조건문
    Python - Dfply filter_by(), pipe (사용자정의 함수) - pull_fun
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 시카고에서 근무하고 있는 직원의 정보를 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - 비교연산자
    프로그램 프로그램 구문 및 함수
    Oracle 비상관 서브쿼리
    파이썬 Pandas iloc[], type()
    R 프로그래밍 class()
    R - Dplyr filter(), pull()
    R - Sqldf 비상관 서브쿼리
    Python - Pandasql 비상관 서브쿼리
    R - Data.table class()
    SAS - Proc SQL 비상관 서브쿼리
    SAS - Data Step 내부조인(Inner join), IF 조건문
    Python - Dfply filter_by(), pipe (사용자정의 함수) - pull_fun
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 직무별 총 급여가 관리자의 최대 급여보다 더 큰 직무 그룹을 출력하시오.
    • [데이터 추출] Having 절에 비상관 서브쿼리 사용
    프로그램 프로그램 구문 및 함수
    Oracle Having절, 비상관 서브쿼리
    파이썬 Pandas groupby(), filter(), lambda 함수
    R 프로그래밍 subset(), aggregate(), FUN = function(x) 사용자 정의 함수
    R - Dplyr group_by(), summarise(), filter(), pull()
    R - Sqldf Having절, 비상관 서브쿼리
    Python - Pandasql Having절, 비상관 서브쿼리
    R - Data.table .SD (Subset of Dataframe), keyby
    SAS - Proc SQL Having절, 비상관 서브쿼리
    SAS - Data Step Proc Summary, CROSS JOIN (카테시안 곱) 구현, Macro 변수 할당
    Python - Dfply summarize(), filter_by(), pipe (사용자정의 함수) - pull_fun
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 다른 부서에서 근무하는 직원보다 급여를 많이 받는 10번 부서의 직원 정보를 출력하시오.
    • [데이터 추출] 상관 서브쿼리(Correlated Subqueyr) 를 만족하는 데이터 추출 - Any 연산자 & 최소값(Min)
    프로그램 프로그램 구문 및 함수
    Oracle 상관 서브쿼리, Any 연산자
    파이썬 Pandas .loc[], min() 함수
    R 프로그래밍 subset(), min() 함수
    R - Dplyr filter(), summarise(), pull(), mutate(), left_join
    R - Sqldf 상관 서브쿼리, min() 함수, EXISTS 연산자
    Python - Pandasql 상관 서브쿼리, min() 함수, EXISTS 연산자
    R - Data.table min() 함수
    SAS - Proc SQL 상관 서브쿼리, Any 연산자, min() 함수
    SAS - Data Step Proc Summary, CROSS JOIN (카테시안 곱) 구현, Macro 변수 할당
    Python - Dfply summarize(), filter_by(), pipe (사용자정의 함수) - pull_fun
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 10번 부서 이외의 부서에서 근무하는 사원들의 최대 급여보다 많이 받는 10번(회계부서) 부서의 직원 정보를 출력하시오
    • [데이터 추출] 상관 서브쿼리(Correlated Subqueyr) 를 만족하는 데이터 추출 - All 연산자 & 최대값(Max)
    프로그램 프로그램 구문 및 함수
    Oracle 상관 서브쿼리, All 연산자
    파이썬 Pandas .loc[], max() 함수, lambda 함수
    R 프로그래밍 subset(), max() 함수
    R - Dplyr filter(), summarise(), pull(), mutate(), left_join
    R - Sqldf 상관 서브쿼리, max() 함수, NOT EXISTS 연산자
    Python - Pandasql 상관 서브쿼리, max() 함수, NOT EXISTS 연산자
    R - Data.table max() 함수
    SAS - Proc SQL 상관 서브쿼리, All 연산자, max() 함수
    SAS - Data Step Proc Summary, CROSS JOIN (카테시안 곱) 구현, Macro 변수 할당
    Python - Dfply summarize(), filter_by(), pipe (사용자정의 함수) - pull_fun
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 직원의 이름을 대문자로 출력하시오.
    • [문자 함수] 문자 대문자 변환
    프로그램 프로그램 구문 및 함수
    Oracle Upper 함수
    파이썬 Pandas upper()
    R 프로그래밍 lapply(), toupper 함수
    R - Dplyr mutate(), toupper 함수
    R - Sqldf upper 함수
    Python - Pandasql upper 함수
    R - Data.table stringr::str_to_upper()
    SAS - Proc SQL Upper 함수
    SAS - Data Step upcase() 함수
    Python - Dfply .str.upper()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 직원의 이름을 소문자로 변경하여 출력하시오.
    • [문자 함수] 문자 소문자 변환
    프로그램 프로그램 구문 및 함수
    Oracle lower() 함수
    파이썬 Pandas .str.lower()
    R 프로그래밍 lapply(), tolower
    R - Dplyr mutate(), tolower()
    R - Sqldf lower() 함수
    Python - Pandasql lower() 함수
    R - Data.table str_to_lower()
    SAS - Proc SQL lower() 함수
    SAS - Data Step lowcase() 함수
    Python - Dfply mutate(), .str.lower()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 직원의 이름을 proper case로 변경하여 출력하시오. proper case는 단어의 첫 글자는 대문자로 나머지 글자는 소문자로 변환한다.
    • [문자 함수] 문자 proper case 문자로 변환
    프로그램 프로그램 구문 및 함수
    Oracle initcap()
    파이썬 Pandas .str.title()
    R 프로그래밍 lapply(), str_to_title
    R - Dplyr mutate(), str_to_title()
    R - Sqldf upper(), substr()
    Python - Pandasql upper(), substr()
    R - Data.table str_to_title()
    SAS - Proc SQL PROPCASE() 함수
    SAS - Data Step PROPCASE() 함수
    Python - Dfply .str.title()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 적절한 함수를 사용하여서 사원 이름의 길이를 출력하라.
    • [문자 함수] 문자 길이 측정
    프로그램 프로그램 구문 및 함수
    Oracle length()
    파이썬 Pandas .str.len()
    R 프로그래밍 lapply(), stringr::str_length
    R - Dplyr stringr::str_length()
    R - Sqldf length()
    Python - Pandasql length()
    R - Data.table stringr::str_length()
    SAS - Proc SQL length()
    SAS - Data Step length()
    Python - Dfply mutate(), .str.len()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 모든 직원 이름의 길이 합계를 출력하라.
    • [문자 함수] 문자 길이 합계 계산
    프로그램 프로그램 구문 및 함수
    Oracle length(), sum()
    파이썬 Pandas .str.len(), .sum()
    R 프로그래밍 lapply(), stringr::str_length, sapply(), sum()
    R - Dplyr stringr::str_length(), dplyr::summarise()
    R - Sqldf length(), sum()
    Python - Pandasql length(), sum()
    R - Data.table stringr::str_length(), sum()
    SAS - Proc SQL length(), sum()
    SAS - Data Step length() 함수, proc summary, 누적 합계
    Python - Dfply mutate(), .str.len(), summarize(), .sum()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 사원번호와 직원의 이름을 연결(결합)하여 출력하시오.
    • [문자 함수] 문자열 결합(||) & 문자열 연결
    프로그램 프로그램 구문 및 함수
    Oracle 파이프(||) 연산자, concat() 함수
    파이썬 Pandas apply(), lambda 함수, .format(), + 연산자, .str.cat, .join, lambda 함수
    R 프로그래밍 paste(), paste0()
    R - Dplyr tidyr::unite(), stringi::stri_join(), stringr::str_c(), base::paste(), base::paste0()
    R - Sqldf 파이프(||) 연산자
    Python - Pandasql 파이프(||) 연산자
    R - Data.table base::paste(), stringr::str_c()
    SAS - Proc SQL 파이프(||) 연산자, cat() 함수, Cats() 함수
    SAS - Data Step 파이프(||) 연산자, cat() 함수, Cats() 함수
    Python - Dfply + 연산자, .str.cat, mutate()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 문자열 사원 이름의 2번째 위치를 시작해서 3글자를 출력하라.
    • [문자 함수] 문자열 절단 함수를 사용하여 문자열 자르기
    프로그램 프로그램 구문 및 함수
    Oracle substr() 함수
    파이썬 Pandas .str.slice()
    R 프로그래밍 base::substr(), stringr::str_sub()
    R - Dplyr stringr::str_sub()
    R - Sqldf substr() 함수
    Python - Pandasql substr() 함수
    R - Data.table stringr::str_sub()
    SAS - Proc SQL substr() 함수
    SAS - Data Step substr() 함수
    Python - Dfply .str.slice()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 문자열 ‘computer maintenance corporation’에서 문자 ‘a’를 검색하여서 첫 번째 문자 발생 위치를 반환하라.
    • [문자 함수] 기준 문자열에서 특정 문자 검색
    프로그램 프로그램 구문 및 함수
    Oracle instr() 함수
    파이썬 Pandas .str.find()
    R 프로그래밍 unlist(), lapply(), function(x) 사용자정의 함수, survPen::instr(), strsplit(), coalesce(), which(), stringi::stri_locate_all(), stringi::stri_locate_first()
    R - Dplyr coalesce(), stringi::stri_locate_first()
    R - Sqldf instr() 함수
    Python - Pandasql instr() 함수
    R - Data.table stringi::stri_locate_first()
    SAS - Proc SQL find() 함수, index() 함수, prxmatch() 함수, 정규식 함수
    SAS - Data Step find() 함수, index() 함수, prxmatch() 함수, 정규식 함수
    Python - Dfply .str.find() 함수
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 문자열(‘Allens’)에서 알파벳 문자 ‘A’를 모두 문자 ‘b’로 변경하시오.
    • [문자 함수] 문자열에서 특정 문자 변경
    프로그램 프로그램 구문 및 함수
    Oracle replace() 함수
    파이썬 Pandas .str.replace() 함수, maketrans(), .str.translate()
    R 프로그래밍 base::gsub(), lapply(), function(x) 사용자 정의 함수, str_replace_all()
    R - Dplyr str_replace_all() 함수, base::gsub() 함수
    R - Sqldf replace() 함수
    Python - Pandasql replace() 함수
    R - Data.table str_replace_all() 함수
    SAS - Proc SQL translate(), tranwrd(), prxchange() 함수(정규식 함수)
    SAS - Data Step translate(), tranwrd(), prxchange() 함수(정규식 함수)
    Python - Dfply .str.replace()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 직무 변수에서 직무명 ‘manager’를 ‘boss’로 변경하시오.
    • [문자 함수] 문자열 변경
    프로그램 프로그램 구문 및 함수
    Oracle replace() 함수
    파이썬 Pandas .str.replace() 함수
    R 프로그래밍 base::gsub(), lapply(), function(x) 사용자 정의 함수, str_replace_all()
    R - Dplyr str_replace_all() 함수, base::gsub() 함수
    R - Sqldf replace() 함수
    Python - Pandasql replace() 함수
    R - Data.table str_replace_all() 함수
    SAS - Proc SQL tranwrd(), prxchange() 함수(정규식 함수)
    SAS - Data Step tranwrd(), prxchange() 함수(정규식 함수)
    Python - Dfply .str.replace()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 부서번호에 해당하는 부서명을 출력하시오. (decode 함수, case when)
    • [조건구문] 코드테이블 결합과 조건문
    프로그램 프로그램 구문 및 함수
    Oracle 내부조인(Inner join), DECODE 구문, Case When 구문
    파이썬 Pandas pd.merge(), np.select(), If 조건문 사용자 정의 함수, apply, lambda 함수, 딕셔너리 Map, IF 조건문
    R 프로그래밍 merge(), function(x), case_when(), ifelse()
    R - Dplyr dplyr::left_join(), dplyr::select(), mutate(), dplyr::case_when() 조건문
    R - Sqldf 내부조인(Inner join), DECODE 구문, Case When 구문
    Python - Pandasql 내부조인(Inner join), DECODE 구문, Case When 구문
    R - Data.table dplyr::case_when() 조건문
    SAS - Proc SQL 내부조인(Inner join), Case When 구문
    SAS - Data Step merge 구문, IF 조건문
    Python - Dfply left_join 구문
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 오늘 날짜 기준으로 나이를 계산하시오. (연령 계산)
    • [날짜 함수]날짜 함수를 사용한 연령계산(나이계산) & Round 함수(반올림 함수)
    프로그램 프로그램 구문 및 함수
    Oracle Round 함수
    파이썬 Pandas today() strftime() - 날짜 포맷, 지역표준시, UTC(그리니치 표준시) 기준, relativedelta()
    R 프로그래밍 Sys.Date()
    R - Dplyr  
    R - Sqldf Round 함수
    Python - Pandasql Round 함수, datetime(), Date(), julianday() 날짜 함수, Cast()
    R - Data.table  
    SAS - Proc SQL intck(), year(), TODAY(), CEIL(), YRDIF()
    SAS - Data Step TODAY(), DATE(), input(), MDY() 함수, intck(), Year() 함수, YRDIF(), DATDIF()
    Python - Dfply datetime.today(), strftime() 날짜 포맷, time.localtime(), time.gmtime()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 나이를 월단위로 계산하라.
    • [날짜 함수]날짜 함수를 사용한 기준월 사이의 기간(Gap) 계산
    프로그램 프로그램 구문 및 함수
    Oracle floor() 함수
    파이썬 Pandas datetime.today(), time.time(), strftime() 날짜 포맷, def 사용자 정의 함수, relativedelta()
    R 프로그래밍 year(), month(), Sys.Date(), lubridate::interval 함수, seq(), Length()
    R - Dplyr  
    R - Sqldf round() 함수, julianday()
    Python - Pandasql round() 함수, julianday()
    R - Data.table  
    SAS - Proc SQL intck(), Input(), DATDIF()
    SAS - Data Step intck(), DATDIF(), Round()
    Python - Dfply datetime(), today(), def 사용자 정의 함수
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 현재 날짜 이후 가장 빠른 토요일 날짜를 출력하시오.
    • [날짜 함수] 가장 빠른 요일에 해당하는 날짜 반환
    프로그램 프로그램 구문 및 함수
    Oracle next_day() 함수
    파이썬 Pandas  
    R 프로그래밍  
    R - Dplyr  
    R - Sqldf  
    Python - Pandasql  
    R - Data.table  
    SAS - Proc SQL  
    SAS - Data Step  
    Python - Dfply  
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 현재 시간을 출력하시오.
    • [날짜 함수] 현재 시간 출력
    프로그램 프로그램 구문 및 함수
    Oracle sysdate 함수, to_char()
    파이썬 Pandas datetime.now(), datetime.now().time(), gmtime(), strftime() 날짜 포맷
    R 프로그래밍 Sys.Date(), Sys.time(), Sys.timezone(), as.POSIXlt()
    R - Dplyr  
    R - Sqldf DATETIME(‘now’), TIME(‘now’)
    Python - Pandasql DATETIME(‘now’), TIME(‘now’)
    R - Data.table  
    SAS - Proc SQL datetime(), time(), timepart()
    SAS - Data Step datetime(), time(), timepart(), put() - 날짜 문자형 변환
    Python - Dfply datetime.now(), gmtime(), strftime() 날짜 포맷 변환
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 현재 날짜를 기준으로 3개월 이전 날짜를 출력하시오.
    • [날짜 함수] 특정 기간 전후 날짜 계산- 날짜 증감
    프로그램 프로그램 구문 및 함수
    Oracle add_months() 함수
    파이썬 Pandas relativedelta(), timedelta()
    R 프로그래밍 months(), as.difftime(), seq() 함수
    R - Dplyr  
    R - Sqldf date() 함수의 ‘start of month’, ‘+3 month’ 옵션
    Python - Pandasql date() 함수의 ‘start of month’, ‘+3 month’ 옵션
    R - Data.table  
    SAS - Proc SQL intnx() 함수
    SAS - Data Step intnx() 함수, PUT() 함수 - 날짜 포맷 변경
    Python - Dfply relativedelta()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 부서번호 10(회계부서)과 20(연구부서)에 공통으로 존재하는 직무를 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - IN 연산자
    프로그램 프로그램 구문 및 함수
    Oracle 비상관 서브쿼리, IN 연산자
    파이썬 Pandas isin()
    R 프로그래밍 %in%, unlist
    R - Dplyr %in%, Filter()
    R - Sqldf 비상관 서브쿼리, IN 연산자
    Python - Pandasql 비상관 서브쿼리, IN 연산자
    R - Data.table %in%, unlist
    SAS - Proc SQL 비상관 서브쿼리, IN 연산자
    SAS - Data Step Merge 구문, IF 조건문, Last.
    Python - Dfply filter_by(), isin(), def 사용자 정의 함수
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 부서번호 10(회계부서)과 20(연구부서)에 공통으로 존재하는 직무에 대하여 중복을 제거 후에 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - 중복 제거를 통한 유일한 값 추출
    프로그램 프로그램 구문 및 함수
    Oracle 비상관 서브쿼리, distinct, intersect 연산자
    파이썬 Pandas unique(), .drop_duplicates()
    R 프로그래밍 unique()
    R - Dplyr distinct()
    R - Sqldf distinct
    Python - Pandasql distinct
    R - Data.table by=, Group 별 집계
    SAS - Proc SQL 비상관 서브쿼리, distinct
    SAS - Data Step Proc sort의 NODUPKEY 옵션
    Python - Dfply distinct(), Def 사용자 정의 함수
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 회계부서(‘10’)에 단독으로 존재하는 직무를 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - NOT IN 연산자
    프로그램 프로그램 구문 및 함수
    Oracle 비상관 서브쿼리, not in 연산자, minus 연산자
    파이썬 Pandas NOT(‘~’) 연산자
    R 프로그래밍 NOT(‘~’) 연산자
    R - Dplyr NOT(‘~’) 연산자
    R - Sqldf not in 연산자
    Python - Pandasql not in 연산자
    R - Data.table NOT(‘!’) 연산자
    SAS - Proc SQL 비상관 서브쿼리, not in 연산자
    SAS - Data Step MERGE 구문, IF 조건문
    Python - Dfply NOT(‘~’) 연산자, isin()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 관리자 업무를 수행하지 않는 직원의 정보를 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - NOT IN 연산자
    프로그램 프로그램 구문 및 함수
    Oracle left join, Not In 연산자
    파이썬 Pandas NOT(‘~’) 연산자, isin(), notnull()
    R 프로그래밍 NOT(‘!’) 연산자, %in%, unlist()
    R - Dplyr NOT(‘!’) 연산자, %in%, unlist(), dplyr::filter()
    R - Sqldf left join, Not In 연산자
    Python - Pandasql left join, Not In 연산자
    R - Data.table NOT(‘!’) 연산자, %in%
    SAS - Proc SQL left join
    SAS - Data Step Merge 구문, IF 조건절,
    Python - Dfply filter_by(), NOT(‘~’) 연산자, isin()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 영업부서(Salses - ‘30’)에 근무하는 직원 중에서 판매 급여 등급이 3등급인 직원의 정보를 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - 비교연산자
    프로그램 프로그램 구문 및 함수
    Oracle 비교연산자
    파이썬 Pandas type(), .tolist(), iloc[]
    R 프로그래밍 비교연산자, unlist()
    R - Dplyr dplyr::filter(), unlist()
    R - Sqldf 비교연산자
    Python - Pandasql 비교연산자
    R - Data.table 비교연산자
    SAS - Proc SQL 비교연산자
    SAS - Data Step CROSS JOIN (카테시안 곱) 구현, IF 조건문, Macro 할당, CALL SYMPUT()
    Python - Dfply filter_by(), @pipe 사용자 정의 함수
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 관리자 이 외의 직원과 관리자 직무를 수행하는 직원을 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - 상하 결합 UNION 연산자
    프로그램 프로그램 구문 및 함수
    Oracle in 연산자, not in 연산자, union
    파이썬 Pandas pd.concat(), isin(), NOT(‘~’) 연산자, notnull(), drop_duplicates(), reset_index()
    R 프로그래밍 unique(), rbind(), NOT(‘!’) 연산자, %in%, unlist()
    R - Dplyr dplyr::union(), dplyr::filter(), NOT(‘!’) 연산자, %in%
    R - Sqldf in 연산자, not in 연산자, union
    Python - Pandasql in 연산자, not in 연산자, union, distinct
    R - Data.table data.table::funion(), NOT(‘!’) 연산자, %in%
    SAS - Proc SQL in 연산자, not in 연산자, union
    SAS - Data Step SET 구문, Merge 구문, IF 조건문
    Python - Dfply union (), filter_by(), NOT(‘~’) 연산자, isin()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 사원 이름이 5글자 이상인 직원을 선택하시오.
    • [문자 함수] 문자 길이 측정
    프로그램 프로그램 구문 및 함수
    Oracle length()
    파이썬 Pandas str.match(), str.len(), loc[], str.len()
    R 프로그래밍 grep(), subset(), grepl(), stringr::str_detect(), stringr::str_length(), nchar(), as.character()
    R - Dplyr dplyr::filter(), stringr::str_length(), grepl(), stringr::str_detect(), nchar(), as.character()
    R - Sqldf length() 함수
    Python - Pandasql length() 함수
    R - Data.table stringr::str_length()
    SAS - Proc SQL length()
    SAS - Data Step length()
    Python - Dfply str.match(), str.len()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 부서 이름이 ‘S’로 시작하고, 해당 부서가 위치하는 곳의 지명이 ‘O’로 끝나는 부서 정보를 출력하시오.
    • [문자 함수] 문자 검색 함수
    프로그램 프로그램 구문 및 함수
    Oracle like 연산자
    파이썬 Pandas str.startswith(), str.endswith(), str.match()
    R 프로그래밍 base::startsWith(), base::endsWith(), stringr::str_detect()
    R - Dplyr dplyr::filter(), stringr::str_detect()
    R - Sqldf like 연산자
    Python - Pandasql like 연산자
    R - Data.table like 연산자, grepl()
    SAS - Proc SQL like 연산자
    SAS - Data Step like 연산자, prxmatch()
    Python - Dfply filter_by(), str.startswith(), str.endswith()
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 해당 관리자의 이름이 “JONES”인 직원들의 정보를 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - 비교 연산자(=)
    프로그램 프로그램 구문 및 함수
    Oracle 비상관 서브쿼리
    파이썬 Pandas tolist()
    R 프로그래밍 NOT(‘!’) 연산자, unlist()
    R - Dplyr dplyr::filter(), unlist()
    R - Sqldf 비상관 서브쿼리
    Python - Pandasql 비상관 서브쿼리
    R - Data.table 비교 연산
    SAS - Proc SQL 비상관 서브쿼리
    SAS - Data Step Merge 구문, IF 조건문
    Python - Dfply filter_by(), @pipe & Def 사용자 정의 함수
    Python - Base 프로그래밍  
    Python - DuckDB  

     


    • 20% 인상된 급여가 3000 이상인 직원의 정보를 출력하시오.
    • [데이터 추출] Where 조건절을 만족하는 데이터 추출
    프로그램 프로그램 구문 및 함수
    Oracle  
    파이썬 Pandas  
    R 프로그래밍  
    R - Dplyr  
    R - Sqldf  
    Python - Pandasql  
    R - Data.table  
    SAS - Proc SQL  
    SAS - Data Step  
    Python - Dfply  
    Python - Base 프로그래밍  
    Python - DuckDB  

     

    • Oracle : where 구문
    • 파이썬 Pandas : 비교 구문
    • R 프로그래밍 : 비교 구문
    • R Dplyr Package : dplyr::filter()
    • R sqldf Package : where 구문
    • Python pandasql Package : where 구문
    • R data.table Package : 비교 구문
    • SAS Proc SQL : 비교 구문
    • SAS Data Step : 비교 구문
    • Python Dfply Package : filter_by()
    • 파이썬 Base 프로그래밍 :

     


     

    91. Display all employees with there dept name.

    • 부서명과 해당 부서의 직원 이름을 출력하시오.
    • 유사문제 : 91, 94, 95, 174, 210번
    • [데이터 추출] 내부 조인(Inner Join)을 만족하는 데이터 추출
    프로그램 프로그램 구문 및 함수
    Oracle  
    파이썬 Pandas  
    R 프로그래밍  
    R - Dplyr  
    R - Sqldf  
    Python - Pandasql  
    R - Data.table  
    SAS - Proc SQL  
    SAS - Data Step  
    Python - Dfply  
    Python - Base 프로그래밍  
    Python - DuckDB  

     

    • Oracle : 내부조인
    • 파이썬 Pandas : pd.merge()
    • R 프로그래밍 : base::merge()
    • R Dplyr Package : dplyr::inner_join()
    • R sqldf Package : 내부조인
    • Python pandasql Package : 내부조인
    • R data.table Package : DT syntax 방식, data.table::merge() 방식
    • SAS Proc SQL : 내부조인
    • SAS Data Step : Merge 구문, IF 조건문
    • Python Dfply Package : inner_join()
    • 파이썬 Base 프로그래밍 :

     


     

    • 영업부서(‘SALES’) 부서에서 근무하고 있는 직원의 이름을 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - 비교 연산자(=)
    프로그램 프로그램 구문 및 함수
    Oracle  
    파이썬 Pandas  
    R 프로그래밍  
    R - Dplyr  
    R - Sqldf  
    Python - Pandasql  
    R - Data.table  
    SAS - Proc SQL  
    SAS - Data Step  
    Python - Dfply  
    Python - Base 프로그래밍  
    Python - DuckDB  

     

    • Oracle : 비상관 서브쿼리
    • 파이썬 Pandas : iloc[]
    • R 프로그래밍 : 비교 구문
    • R Dplyr Package : dplyr::filter(), pull()
    • R sqldf Package : 비상관 서브쿼리
    • Python pandasql Package : 비상관 서브쿼리
    • R data.table Package : 비교 구문
    • SAS Proc SQL : 비상관 서브쿼리
    • SAS Data Step : Merge 구문, IF 조건문
    • Python Dfply Package : filter_by(), @pipe & Def 사용자 정의 함수
    • 파이썬 Base 프로그래밍 :

     


     

    • 시카고에서 근무하고 급여가 2000에서 5000 사이에 위치한 직원의 정보를 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - 비교 연산자(=) 과 Between 연산자
    프로그램 프로그램 구문 및 함수
    Oracle  
    파이썬 Pandas  
    R 프로그래밍  
    R - Dplyr  
    R - Sqldf  
    Python - Pandasql  
    R - Data.table  
    SAS - Proc SQL  
    SAS - Data Step  
    Python - Dfply  
    Python - Base 프로그래밍  
    Python - DuckDB  

     

    • Oracle : 비상관 서브쿼리, between 연산자
    • 파이썬 Pandas : iloc[], between()
    • R 프로그래밍 : 비교 구문, subset()
    • R Dplyr Package : dplyr::filter(), pull(), between()
    • R sqldf Package : 비상관 서브쿼리, between 연산자
    • Python pandasql Package : 비상관 서브쿼리, between 연산자
    • R data.table Package : 비교 구문, %between%
    • SAS Proc SQL : 비상관 서브쿼리, between 연산자, Where 데이터 세트 옵션
    • SAS Data Step : Merge 구문, IF 조건문
    • Python Dfply Package : filter_by(), @pipe & Def 사용자 정의 함수, between()
    • 파이썬 Base 프로그래밍 :

     


     

    • 해당 관리자의 급여보다 많이 받는 직원의 정보를 출력하시오.
    • 유사문제 : 91, 94, 95, 174, 210번
    • [데이터 추출] 비등가 내부 조인(Inner Join)을 만족하는 데이터 추출
    프로그램 프로그램 구문 및 함수
    Oracle  
    파이썬 Pandas  
    R 프로그래밍  
    R - Dplyr  
    R - Sqldf  
    Python - Pandasql  
    R - Data.table  
    SAS - Proc SQL  
    SAS - Data Step  
    Python - Dfply  
    Python - Base 프로그래밍  
    Python - DuckDB  

     

    • Oracle : 비등가 내부조인, 상관 서브쿼리
    • 파이썬 Pandas : pd.merge(), filter(), query()
    • R 프로그래밍 : subset(), base::merge(), grep(), names(), %like%
    • R Dplyr Package : dplyr::inner_join(), dplyr::filter()
    • R sqldf Package : 비등가 내부조인, 상관 서브쿼리
    • Python pandasql Package : 비등가 내부조인, 상관 서브쿼리
    • R data.table Package : DT syntax 방식, data.table::merge() 방식, grep(), NOT(‘!’) 연산자
    • SAS Proc SQL : 비등가 내부조인
    • SAS Data Step : Merge 구문, IF 조건문
    • Python Dfply Package : inner_join(), def 사용자 정의 함수, inner_join_fun 사용자 정의 함수
    • 파이썬 Base 프로그래밍 :

     


     

    • 담당 관리자가 근무하는 부서와 동일한 부서에 근무하는 직원의 정보를 출력하시오.
    • 유사문제 : 91, 94, 95, 174, 210번
    • [데이터 추출] 내부 조인(Inner Join)을 만족하는 데이터 추출
    프로그램 프로그램 구문 및 함수
    Oracle  
    파이썬 Pandas  
    R 프로그래밍  
    R - Dplyr  
    R - Sqldf  
    Python - Pandasql  
    R - Data.table  
    SAS - Proc SQL  
    SAS - Data Step  
    Python - Dfply  
    Python - Base 프로그래밍  
    Python - DuckDB  

     

    • Oracle : 내부 조인, 상관 서브쿼리
    • 파이썬 Pandas : emp.merge()
    • R 프로그래밍 : merge(), names(), %like% - 변수명 선택
    • R Dplyr Package : inner_join()
    • R sqldf Package : 내부 조인, 상관 서브쿼리
    • Python pandasql Package : 내부 조인, 상관 서브쿼리
    • R data.table Package : DT syntax 방식, data.table::merge() 방식, grep()
    • SAS Proc SQL : 내부 조인, 상관 서브쿼리
    • SAS Data Step : MERGE 구문, IF 조건문
    • Python Dfply Package : @pipe & def 사용자 정의 함수(inner_join_merge)
    • 파이썬 Base 프로그래밍 :

     


     

    • 담당 관리자가 존재하지 않는 직원의 정보를 출력하시오.
    • [데이터 추출] 값이 존재하지 않는 NULL 데이터 추출
      • Oracle : is null
      • 파이썬 Pandas : isna(), isnull(), query()
      • R 프로그래밍 : is.na(), which(), is.na()
      • R Dplyr Package : filter(), is.na()
      • R sqldf Package : is null
      • Python pandasql Package : is null
      • R data.table Package : is.na()
      • SAS Proc SQL : is null, 결측치 선택
      • SAS Data Step : 결측치 선택
      • Python Dfply Package : filter_by, is.na(), isnull()
      • 파이썬 Base 프로그래밍 :

     


     

    • 부서번호 10 또는 30 에 근무하고, 급여 등급이 4 등급 이외 등급이고, 1982년 12월 31일 이전에 입사한 직원의 정보를 출력하시오.
    • [데이터 추출] 비등가 조인에 해당하는 데이터 추출
      • Oracle : 비등가 조인
      • 파이썬 Pandas : pd.merge(), assign(), query()
      • R 프로그래밍 : subset(), Merge(), character(), Between()
      • R Dplyr Package : dplyr::full_join(), dplyr::left_join(), character(), dplyr::filter(), between()
      • R sqldf Package : 비등가 조인
      • Python pandasql Package : 비등가 조인
      • R data.table Package : DT syntax 방식 비등가 조인
      • SAS Proc SQL : 비등가 조인
      • SAS Data Step : CROSS JOIN (카테시안 곱) 구현, IF 조건문
      • Python Dfply Package : left_join(), @pipe & def (inner_join_merge) 사용자 정의 함수, filter_by(), between()
      • 파이썬 Base 프로그래밍 :

     


     

    • 커미션을 받을 수 없는 직원의 급여를 10%씩 인상하여서 업데이트 하여라.
    • [데이터 변환] 조건절을 만족하는 데이터 변경
      • Oracle : update 구문
      • 파이썬 Pandas : np.where(), isna(), loc[], apply(), lambda() 함수
      • R 프로그래밍 : ifelse(), transform()
      • R Dplyr Package : dplyr::mutate(), is.na(), ifelse(), case_when()
      • R sqldf Package : update 구문
      • Python pandasql Package : update 구문
      • R data.table Package : is.na(), ifelse(), dplyr::case_when()
      • SAS Proc SQL : update 구문, CASE WHEN 절
      • SAS Data Step : IF 조건문
      • Python Dfply Package : mutate(), make_symbolic(), np.where()
      • 파이썬 Base 프로그래밍 :

     


     

    • 근무 부서가 ‘NEW YORK’ 또는 ‘CHICAGO’에 위치하고, 1982년 12월 31일 이전에 근무한 사람의 정보를 삭제하라.
    • [데이터 삭제] Where 조건절을 만족하는 데이터 삭제-비상관서브쿼리
      • Oracle : Delete 구문, in 연산자, 비상관 서브쿼리
      • 파이썬 Pandas : isin(), NOT(‘~’) 연산자
      • R 프로그래밍 : %in%, NOT(‘!’) 연산자
      • R Dplyr Package : dplyr::filter(), NOT(‘!’) 연산자
      • R sqldf Package : Delete 구문, in 연산자, 비상관 서브쿼리
      • Python pandasql Package : Not 연산자, in 연산자, 비상관 서브쿼리
      • R data.table Package : NOT(‘!’) 연산자, %in%
      • SAS Proc SQL : Delete 구문(논리적 삭제), in 연산자, 비상관 서브쿼리
      • SAS Data Step : Merge 구문, Delete 구문, IF 조건문, NOT 연산자
      • Python Dfply Package : filter_by(), NOT(‘~’) 연산자, isin()
      • 파이썬 Base 프로그래밍 :

     


     

    • 관리자 역할을 수행하는 직원의 정보를 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 를 만족하는 데이터 추출 - In 연산자와 내부조인(Inner Join)
      • Oracle : 비상관 서브쿼리, 내부조인
      • 파이썬 Pandas : query(), drop_duplicates(), merge(), lambda 함수, loc[], isin(), pd.merge()
      • R 프로그래밍 : merge()
      • R Dplyr Package : dplyr::inner_join()
      • R sqldf Package : 비상관 서브쿼리, 내부조인
      • Python pandasql Package : 비상관 서브쿼리, 내부조인
      • R data.table Package : unlist(), DT syntax 방식 데이터 결합, is.list(), is.vector(), typeof()
      • SAS Proc SQL : 비상관 서브쿼리, 내부조인
      • SAS Data Step : Merge, IF 조건문, Proc Sort의 Nodupkey 옵션
      • Python Dfply Package : inner_join()
      • 파이썬 Base 프로그래밍 :

     


     

    • 관리자 이름이 ‘Jones’인 직원 이름과 관리자(‘Jones’)의 이름을 출력하시오.
    • [데이터 추출] 내부조인(Inner join)을 만족하는 데이터 추출
      • Oracle : 내부결합
      • 파이썬 Pandas : pd.merge()
      • R 프로그래밍 : merge()
      • R Dplyr Package : dplyr::inner_join()
      • R sqldf Package : 내부결합
      • Python pandasql Package : 내부결합
      • R data.table Package : DT syntax 방식 데이터 결합
      • SAS Proc SQL : 내부결합
      • SAS Data Step : Merge 구문, IF 조건문
      • Python Dfply Package : @pipe & Def 사용자 정의 함수(inner_join_merge)
      • 파이썬 Base 프로그래밍 :

     


     

    • 직원 Ford의 급여가 해당 급여 등급의 최고 급여(‘hisal’)와 같은 경우에 이름과 연봉을 출력하시오.
    • [데이터 추출] 비상관 서브쿼리(Uncorrelated Subqueyr) 와 상관 서브쿼리(Correlated Subqueyr)를 만족하는 데이터 추출 - 비등가조인(NON-EQUI JOIN) 데이터 결합
      • Oracle : 비상관 서브쿼리와 상관 서브쿼리, 비등가 데이터 결합
      • 파이썬 Pandas : pd.merge(), query()
      • R 프로그래밍 : merge(), Subset()
      • R Dplyr Package : dplyr::full_join(), dplyr::filter()
      • R sqldf Package : 비상관 서브쿼리와 상관 서브쿼리, 비등가 데이터 결합
      • Python pandasql Package : 비상관 서브쿼리와 상관 서브쿼리, 비등가 데이터 결합
      • R data.table Package : 비등가조인(NON-EQUI JOIN)
      • SAS Proc SQL : 비상관 서브쿼리와 상관 서브쿼리, 비등가 데이터 결합
      • SAS Data Step : CROSS JOIN (카테시안 곱) 구현
      • Python Dfply Package : full_join(), filter_by()
      • 파이썬 Base 프로그래밍 :

     


     

    • 직원이름, 직무, 부서명, 관리자명, 직원 급여 등급을 부서번호를 기준으로 정렬하여서 출력하시오.

    [데이터 추출] 비등가 FULL 조인(NON-EQUI FULL JOIN)을 통한 데이터 결합

    • Oracle : 비등가조인(NON-EQUI JOIN)
    • 파이썬 Pandas : pd.merge, assign(), query()
    • R 프로그래밍 : base::merge(), subset()
    • R Dplyr Package : dplyr::inner_join(), dplyr::full_join(), dplyr::filter()
    • R sqldf Package : 비등가조인(NON-EQUI JOIN)
    • Python pandasql Package : 비등가조인(NON-EQUI JOIN)
    • R data.table Package : 비등가조인(NON-EQUI JOIN) 방식 데이터 결합
    • SAS Proc SQL : 비등가조인(NON-EQUI JOIN)
    • SAS Data Step : Merge 구문, IF 조건문, CROSS JOIN (카테시안 곱) 구현
    • Python Dfply Package : @pipe & Def 사용자 정의 함수(inner_join_merge), full_join()
    • 파이썬 Base 프로그래밍 :

     


     

    • 사무직(‘CLERK’) 직원을 제외한 직월들의 이름, 직무, 부서명, 직원 급여 등급을 높은(내림차순 기준) 급여 기준으로 정렬하여서 출력하시오.

    [데이터 추출] 비등가 FULL 조인(NON-EQUI FULL JOIN)을 통한 데이터 결합 및 데이터 정렬(SORT)

    • Oracle : 비등가조인(NON-EQUI JOIN), Order by
    • 파이썬 Pandas : pd.merge, assign(), query(), sort_values()
    • R 프로그래밍 : base::merge(), subset(), order()
    • R Dplyr Package : dplyr::inner_join(), dplyr::full_join(), dplyr::filter(), dplyr::arrange()
    • R sqldf Package : 비등가조인(NON-EQUI JOIN), Order by
    • Python pandasql Package : 비등가조인(NON-EQUI JOIN), Order by
    • R data.table Package : 비등가조인(NON-EQUI JOIN) 방식 데이터 결합, order()
    • SAS Proc SQL : 비등가조인(NON-EQUI JOIN), Order by
    • SAS Data Step : Merge 구문, IF 조건문, CROSS JOIN (카테시안 곱) 구현, proc sort
    • Python Dfply Package : @pipe & Def 사용자 정의 함수(inner_join_merge), full_join(), arrange()
    • 파이썬 Base 프로그래밍 :

     


     

    • 직원 이름, 직무, 담당 관리자명을 출력하시오. 더불어 담당 관리자가 없는 직원도 함께 출력하시오.
    • [데이터 추출] Left Join 과 데이터 상하 결합(UNION)
      • Oracle : Left join과 Union all, is null
      • 파이썬 Pandas : pd.merge(), pd.concat(), assign(), isnull()
      • R 프로그래밍 : pd.merge(), np.where(), str.replace() - 변수명 변경, cbind(), rbind(), ifelse(), transform(), is.na()
      • R Dplyr Package : dplyr::inner_join(), dplyr::rename() - 변수명 변경, dplyr::union (), is.na()
      • R sqldf Package : Left join과 Union all, is null
      • Python pandasql Package : Left join과 Union all, is null
      • R data.table Package : DT syntax 방식 데이터 결합, data.table::funion(), is.na(), 변수명 변경, merge 방식 Left join
      • SAS Proc SQL : Left join과 Union, is null
      • SAS Data Step : Merge 구문, IF 조건문, Set 상하 결합
      • Python Dfply Package : @pipe & Def 사용자 정의 함수(inner_join_merge), rename(), union()
      • 파이썬 Base 프로그래밍 :

     


     

    • 최대 급여 수령자 상위 5명의 정보를 출력하시오.
    • [데이터 추출] 상위 Top 5 추출
      • Oracle : ROW_NUMBER()
      • 파이썬 Pandas : nlargest()
      • R 프로그래밍 : order(), row_number()
      • R Dplyr Package : slice_max(), top_n()
      • R sqldf Package : ROW_NUMBER(), RANK()
      • Python pandasql Package : ROW_NUMBER(), RANK()
      • R data.table Package : order()
      • SAS Proc SQL : monotonic()
      • SAS Data Step : PROC RANK, N
      • Python Dfply Package : row_number(), min_rank()
      • 파이썬 Base 프로그래밍 :

     


     

    • 최대 급여 수령자의 정보를 출력하시오.
    • [데이터 추출] 최대값 추출
      • Oracle : Max()
      • 파이썬 Pandas : nlargest()
      • R 프로그래밍 : order(), row_number()
      • R Dplyr Package : slice_max(), top_n()
      • R sqldf Package : ROW_NUMBER()
      • Python pandasql Package : Max()
      • R data.table Package : order()
      • SAS Proc SQL : max(), HAVING MAX(), MONOTONIC()
      • SAS Data Step : PROC RANK, N
      • Python Dfply Package : row_number(), min_rank(), nth(), first()
      • 파이썬 Base 프로그래밍 :

     


     

    108. Display those employees whose salary is equal to average of maximum and minimum.

    • 최대 급여와 최소급여의 평균보다 더 많은 급여를 수령하는 직원의 정보를 출력하시오. ( = 에서 > 으로 변경)
    • [데이터 추출] 최소값과 최대값
      • Oracle : min(), max()
      • 파이썬 Pandas : .loc[], min(), max(), query()
      • R 프로그래밍 : min(), max(), subset()
      • R Dplyr Package : min(), max(), filter()
      • R sqldf Package : min(), max()
      • Python pandasql Package : min(), max()
      • R data.table Package : min(), max()
      • SAS Proc SQL : min(), max()
      • SAS Data Step : PROC SUMMARY의 min, max 옵션, Macro 변수 할당 방식
      • Python Dfply Package : min(), max()
      • 파이썬 Base 프로그래밍 :

     


     

    • 부서내 직원 수가 4명 이상인 부서의 부서명과 직원수를 출력하시오.
    • 유사문제 : 109, 176, 185
    • [데이터 추출] 그룹 집계 후 특정 조건을 만족하는 그룹의 집계 통계량 출력
      • Oracle : group by, having count(*)
      • 파이썬 Pandas : groupby(), query(), agg(), filter(), lambda 함수
      • R 프로그래밍 : aggregate(), subset(), FUN = function(x) 사용자 정의 함수, list(), tapply()
      • R Dplyr Package : group_by(), dplyr::summarise, n(), dplyr::tally(), dplyr::count(), nrow(.), do(), dplyr::filter()
      • R sqldf Package : group by, having count(*)
      • Python pandasql Package : group by, having count(*)
      • R data.table Package : .SD (Subset of Dataframe), keyby =, .N
      • SAS Proc SQL : group by, having count(*)
      • SAS Data Step : PROC SUMMARY, FIRST. and LAST.
      • Python Dfply Package : group_by, summarize()
      • 파이썬 Base 프로그래밍 :

     


     

    110. Display dname where at least 3 are working and display only dname.

    • 부서내 직원 수가 4명 이상인 부서의 부서 정보를 출력하시오.
    • [데이터 추출] 해당 그룹에 대한 특정 조건을 만족하는 그룹 리스트 출력
      • Oracle : 비상관 서브쿼리, having count(*)
      • 파이썬 Pandas : isin(), groupby(), count(), query(), pd.merge()
      • R 프로그래밍 : subset(), aggregate(), merge(), subset()
      • R Dplyr Package : %in%, dplyr::tally(), dplyr::filter(), dplyr::pull(), dplyr::inner_join()
      • R sqldf Package : 비상관 서브쿼리, having count(*)
      • Python pandasql Package : 비상관 서브쿼리, having count(*)
      • R data.table Package : DT syntax 방식 데이터 결합, .N, %in%
      • SAS Proc SQL : 비상관 서브쿼리, having count(*)
      • SAS Data Step : PROC SUMMARY, Merge 구문, IF 조건문
      • Python Dfply Package : @dfpipe & def 사용자 정의 함수(pull_fun), isin(), summarize(), n()
      • 파이썬 Base 프로그래밍 :

     


     

    • 회사 평균 급여보다 더 많은 급여를 받는 관리자의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리, 평균
      • Oracle : 비상관 서브쿼리, avg()
      • 파이썬 Pandas : mean()
      • R 프로그래밍 : mean()
      • R Dplyr Package : dplyr::summarise(), mean(), dplyr::pull()
      • R sqldf Package : 비상관 서브쿼리, avg()
      • Python pandasql Package : 비상관 서브쿼리, avg()
      • R data.table Package : DT[], mean()
      • SAS Proc SQL : 비상관 서브쿼리, avg()
      • SAS Data Step : Merge 구문, IF 조건문, PROC SUMMARY, CROSS JOIN (카테시안 곱) 구현
      • Python Dfply Package : @pipe & def 사용자 정의 함수(pull_list), @dfpipe & def 사용자 정의 함수(pull_fun), summarize(), mean()
      • 파이썬 Base 프로그래밍 :

     


     

    • 담당하고 있는 부서에 속한 직원들의 평균 급여보다 더 많은 급여를 수령하고 있는 관리자 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 상관 서브쿼리, 평균
      • Oracle : 상관 서브쿼리, avg()
      • 파이썬 Pandas : pd.merge(), agg(), np.mean
      • R 프로그래밍 : merge(), subset(), aggregate(), function(x) 사용자 정의 함수, mean()
      • R Dplyr Package : dplyr::inner_join(), summarise(), mean()
      • R sqldf Package : 상관 서브쿼리, avg()
      • Python pandasql Package : 상관 서브쿼리, avg()
      • R data.table Package : DT syntax 방식 데이터 결합, %in%, mean()
      • SAS Proc SQL : 비상관 서브쿼리, avg()
      • SAS Data Step : PROC SORT의 Nodupkey 옵션, Merge 구문, IF 조건문, PROC SUMMARY 의 Mean
      • Python Dfply Package : @pipe & def 사용자 정의 함수(pull_list), @pipe & def 사용자 정의 함수(inner_join_merge), summarize(), mean()
      • 파이썬 Base 프로그래밍 :

     


     

    • 수수료(commission)를 포함한 직원의 급여가 다른 직원의 일반 급여보다 크거나 같은 직원의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 결측치 대체, 카테시안 곱(Cartesian Product) - Full Join, Any 연산자
      • Oracle : nvl(), any(), min()
      • 파이썬 Pandas : pd.merge(), assign() - Full Join, query(), Min()
      • R 프로그래밍 : merge(), subset(), by= character() - Full Join, aggregate(), ifelse() 조건절, is.na()
      • R Dplyr Package : dplyr::inner_join(), dplyr::full_join(), dplyr::summarise(), min(), ifelse() 조건절, is.na()
      • R sqldf Package : ifnull(), min(), EXISTS() 연산자
      • Python pandasql Package : ifnull(), min(), EXISTS() 연산자
      • R data.table Package : DT Syntax 데이터 결합(allow.cartesian), data.table::merge() syntax 데이터 결합, fuzzyjoin::fuzzy_left_join, fcoalesce(), min()
      • SAS Proc SQL : COALESCE(), any(), min(), EXISTS() 연산자
      • SAS Data Step : CROSS JOIN (카테시안 곱) 구현, PROC SUMMARY의 Min, Merge 구문, IF 조건문, COALESCE()
      • Python Dfply Package : @pipe & def 사용자 정의 함수(inner_join_merge), full_join(), summarize(), min(), make_symbolic(), np.where()
      • 파이썬 Base 프로그래밍 :

     


     

    • 급여가 담당 관리자보다 적지만 다른 부서의 관리자보다 더 많은 급여를 수령하는 직원의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 상관 서브쿼리 & 카테시안 곱(Cartesian Product)
      • Oracle : 상관 서브쿼리, Any() 연산자
      • 파이썬 Pandas : pd.merge() 와 assign(foo=1) - 카테시안 곱(Cartesian Product), Query(), lambda 함수, re.sub() - 변수명 변경
      • R 프로그래밍 : subset(), merge() 의 by= character() 옵션 - 카테시안 곱(Cartesian Product), rename(), %like%, sub(), colnames()
      • R Dplyr Package : dplyr::inner_join(), dplyr::rename_all(), gsub(), dplyr::full_join() 의 by = character() 옵션 - 카테시안 곱(Cartesian Product), dplyr::summarise(), min()
      • R sqldf Package : 상관 서브쿼리, EXISTS() 연산자, min()
      • Python pandasql Package : 상관 서브쿼리, EXISTS() 연산자, min()
      • R data.table Package : DT Syntax 데이터 결합의 [,k:=1] 와 allow.cartesian=TRUE - 카테시안 곱(Cartesian Product), grep(), colnames()
      • SAS Proc SQL : 상관 서브쿼리, Any() 연산자, EXISTS() 연산자, min()
      • SAS Data Step : CROSS JOIN (카테시안 곱) 구현, PROC SUMMARY의 Min, MERGE 구문, IF 조건문
      • Python Dfply Package : @pipe & def 사용자 정의 함수(inner_join_merge), full_join() & .assign(foo=1) - 카테시안 곱(Cartesian Product), summarize(), Min()
      • 파이썬 Base 프로그래밍 :

     


     

    • 전체 직원명 명단과 함께 전체 직원의 급여 합계를 함께 출력하시오.
    • [데이터 추출] 전체 합계 추가하기 - 스칼라 서브쿼리(Scala Subquery)과 Cross join
      • Oracle : 스칼라 서브쿼리(Scala Subquery)과 Cross join, sum()
      • 파이썬 Pandas : pd.merge()의 Cross Join(카테시안곱)
      • R 프로그래밍 : merge()의 Cross Join(카테시안곱)
      • R Dplyr Package : dplyr::mutate(), dplyr::full_join()의 Cross Join(카테시안곱)
      • R sqldf Package : 스칼라 서브쿼리(Scala Subquery)과 Cross join
      • Python pandasql Package : 스칼라 서브쿼리(Scala Subquery)과 Cross join
      • R data.table Package : sum()
      • SAS Proc SQL : 스칼라 서브쿼리(Scala Subquery)과 Cross join, sum()
      • SAS Data Step : CROSS JOIN (카테시안 곱) 구현, Macro 변수, Proc sql의 into, CALL SYMPUT()
      • Python Dfply Package : full_join()의 Cross Join(카테시안곱)
      • 파이썬 Base 프로그래밍 :

     


     

    • 최소 급여 수령자 하위 5명의 정보를 출력하시오.
    • 유사문제 : 117번(상위 Top5)
    • [데이터 추출] 하위 Top 5 추출 - 윈도우 함수
      • Oracle : ROW_NUMBER(), RANK()
      • 파이썬 Pandas : pd.merge()의 Cross Join(카테시안곱), nlargest()
      • R 프로그래밍 : aggregate(), function(x) 사용자 정의 함수, fuzzyjoin::fuzzy_left_join(), subset(), order(), row_number()
      • R Dplyr Package : fuzzyjoin::fuzzy_left_join(), dplyr::full_join(), dplyr::summarise(), n_distinct(), dplyr::inner_join()
      • R sqldf Package : ROW_NUMBER(), RANK()
      • Python pandasql Package : ROW_NUMBER(), RANK()
      • R data.table Package : DT Syntax 방식 데이터 결합의 Cross Join(카테시안곱), fuzzyjoin::fuzzy_left_join(), ifelse()
      • SAS Proc SQL : monotonic()
      • SAS Data Step : PROC RANK, N
      • Python Dfply Package : apply 함수, lambda 함수, make_symbolic(), if_else(), np.where, case_when(), replace()
      • 파이썬 Base 프로그래밍 :

     


     

    • 담당 관리자의 급여보다 더 많이 받는 직원의 숫자를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 상관 서브쿼리
      • Oracle : 상관 서브쿼리, Self join
      • 파이썬 Pandas : merge(), filter(), query()
      • R 프로그래밍 : merge(), subset(), count(), nrow()
      • R Dplyr Package : inner_join (), dplyr::summarize()
      • R sqldf Package : 상관 서브쿼리, Self join
      • Python pandasql Package : 상관 서브쿼리, Self join
      • R data.table Package : DT Syntax 방식의 데이터 결합, .N
      • SAS Proc SQL : 상관 서브쿼리, Self join
      • SAS Data Step : DT Syntax의 내부조인, .N, nrow()
      • Python Dfply Package : MERGE구문, IF 조건문, Proc SUMMARY의 N
      • 파이썬 Base 프로그래밍 :

     


     

    • 직속 상사가 사장이 아닌 일반 관리자 밑에서 근무하는 직원의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(IN 연산자)
      • Oracle : 비상관 서브쿼리, IN 연산자
      • 파이썬 Pandas : isin()
      • R 프로그래밍 : %in%, unlist()
      • R Dplyr Package : %in%
      • R sqldf Package : 비상관 서브쿼리, IN 연산자
      • Python pandasql Package : 비상관 서브쿼리, IN 연산자
      • R data.table Package : %in%, unlist()
      • SAS Proc SQL : 비상관 서브쿼리, IN 연산자
      • SAS Data Step : CROSS JOIN (카테시안 곱) 구현
      • Python Dfply Package : @pipe & def 사용자 정의 함수(pull_list), isin()
      • 파이썬 Base 프로그래밍 :

     


     

    119. Delete those department where no employee working?

    • DEPT 테이블에서 직원이 근무하지 않는(배정되어 있지 않은) 부서 정보를 삭제하시오.
    • [데이터 추출] 특정 조건에 해당하는 데이터 삭제 - 상관 서브쿼리
      • Oracle : 상관 서브쿼리, Delete 구문
      • 파이썬 Pandas : pd.merge(), query()
      • R 프로그래밍 : merge(), subset(), aggregate(), setNames() - 변수명 설정, names()
      • R Dplyr Package : dplyr::left_join(), dplyr::tally(), dplyr::filter()
      • R sqldf Package : 상관 서브쿼리, Delete 구문, Left Join
      • Python pandasql Package : 상관 서브쿼리, Delete 구문
      • R data.table Package : DT Syntax 방식 데이터 결합, Merge 방식의 데이터 결합, .N, keyby=
      • SAS Proc SQL : 상관 서브쿼리, Delete 구문, Left Join
      • SAS Data Step : PROC SUMMARY의 N, Merge 구문, If 조건문
      • Python Dfply Package : left_join(), summarize(), count(), filter_by()
      • 파이썬 Base 프로그래밍 :

     


     

    • EMP 사원관리 테이블에서 dept 부서관리 테이블에 존재하지 않는 부서코드(‘depnot’)가 부여된 사원 정보를 삭제하시오.
    • [데이터 추출] 특정 조건에 해당하는 데이터 삭제 - 비상관 서브쿼리(Not in 연산자)
      • Oracle : 비상관 서브쿼리, Delete 구문, Not in
      • 파이썬 Pandas : isin(), notnull(), describe(), pd.merge(), query(), notnull()
      • R 프로그래밍 : %in%, unlist(), merge(), subset(), count(), is.na(), NOT(‘!’) 연산자
      • R Dplyr Package : dplyr::left_join(), dplyr::tally(), NOT(‘!’) 연산자
      • R sqldf Package : 비상관 서브쿼리, Delete 구문, Not in, Left Join, is not null
      • Python pandasql Package : 비상관 서브쿼리, in 연산자, Left Join, is not null, drop() - 변수 삭제
      • R data.table Package : %in%
      • SAS Proc SQL : 비상관 서브쿼리, Delete 구문, Not in, in 연산자, Left Join, is not null
      • SAS Data Step : Merge 구문, If 조건문
      • Python Dfply Package : left_join(), summarize(), count(), notnull()
      • 파이썬 Base 프로그래밍 :

     


     

    • 직원 급여가 급여 등급 테이블에서 관리하는 급여 범위를 벗어나서 존재하지 않는 직원의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(최대값, 최소값)
      • Oracle : 비상관 서브쿼리, Min(), Max(), Not Between 연산자
      • 파이썬 Pandas : min(), max(), Or(‘|’), between(), 지역변수(Local variables) 할당
      • R 프로그래밍 : min(), max(), Or(‘|’), which(), subset()
      • R Dplyr Package : min(), max(), Or(‘|’), between()
      • R sqldf Package : 비상관 서브쿼리, Min(), Max(), Not Between 연산자
      • Python pandasql Package : 비상관 서브쿼리, Min(), Max(), Not Between 연산자
      • R data.table Package : min(), max(), NOT(‘!’) 연산자, between(), unlist()
      • SAS Proc SQL : 비상관 서브쿼리, Min(), Max(), Not Between 연산자
      • SAS Data Step : PROC SUMMARY의 MIN 과 MAX, CROSS JOIN (카테시안 곱) 구현, , Macro 변수 할당, CALL SYMPUT()
      • Python Dfply Package : min(), max(), Or(‘|’), between(), NOT(‘~’) 연산자
      • 파이썬 Base 프로그래밍 :

     


     

    • 수수료(commission)를 포함한 직원의 급여를 가장 많이 수령하는 직원의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(최대값), 결측치 처리
      • Oracle : 비상관 서브쿼리, Nvl(), max()
      • 파이썬 Pandas : isna(), np.where(), max()
      • R 프로그래밍 : is.na(), ifelse(), max()
      • R Dplyr Package : is.na(), ifelse(), max()
      • R sqldf Package : 비상관 서브쿼리, ifnull(), max()
      • Python pandasql Package : 비상관 서브쿼리, ifnull(), max()
      • R data.table Package : fcoalesce(), unlist()
      • SAS Proc SQL : 비상관 서브쿼리, coalesce(), IFN(), max(), all() 연산자, NOT EXISTS 연사자
      • SAS Data Step : COALESCE(), IF 조건문, CROSS JOIN (카테시안 곱) 구현, Proc Summary의 Max, Merge 구문
      • Python Dfply Package : make_symbolic(), np.where(), Max()
      • 파이썬 Base 프로그래밍 :

     


     

    • 1999년 12월 31일 일자로 퇴직자 명단을 출력하시오. 퇴직자는 근무기간이 18년을 초과하는 직원.
    • [날짜 함수]날짜 함수를 사용한 기준월 사이의 기간(Gap) 계산
      • Oracle : To_date()
      • 파이썬 Pandas : apply(), Lambda 함수, relativedelta.relativedelta(), dt.todatetime(), dt.days
      • R 프로그래밍 : difftime(), as.Date()
      • R Dplyr Package : difftime(), as.Date()
      • R sqldf Package : strftime() 날짜 포맷, round()
      • Python pandasql Package : strftime() 날짜 포맷, round(), typeof() 변수 타입 확인
      • R data.table Package : difftime(), as.Date()
      • SAS Proc SQL : intck(), Input 함수(문자형 날짜를 날짜형으로), Year(), Ceil(), YRDIF(), Datdif()
      • SAS Data Step : intck(), Input 함수(문자형 날짜를 날짜형으로), Year(), Ceil(), YRDIF(), Datdif()
      • Python Dfply Package : @make_symbolic & def 사용자 정의 함수(to_datetime), dt.datetime()
      • 파이썬 Base 프로그래밍 :

     


     

    • 급여가 홀수인 직원을 출력하시오.
    • [수치형 함수] 나머지 반환 함수-Mod 함수
      • Oracle : Mod() 함수
      • 파이썬 Pandas : %
      • R 프로그래밍 : %%, numbers::mod()
      • R Dplyr Package : %%, numbers::mod()
      • R sqldf Package : %
      • Python pandasql Package : %
      • R data.table Package : %%, numbers::mod()
      • SAS Proc SQL : Mod() 함수
      • SAS Data Step : Mod() 함수
      • Python Dfply Package : %
      • 파이썬 Base 프로그래밍 :

     


     

    • 급여가 4자리 이상의 급여를 수령하는 직원을 출력하시오.
    • [문자 함수] 특정 문자열의 길이를 측정 - Length 함수
      • Oracle : Length()
      • 파이썬 Pandas : .str.len(), .astype(str)
      • R 프로그래밍 : stringr::str_length()
      • R Dplyr Package : stringr::str_length()
      • R sqldf Package : Length(), typeof() 변수 타입 확인, cast() 변수 타입 변환
      • Python pandasql Package : Length()
      • R data.table Package : stringr::str_length()
      • SAS Proc SQL : Length(), COMPRESS(), PUT() 변수 타입 변환(수치형을 수치형태의 문자로 변환), LIKE 연산자, prxmatch() 정규식 함수
      • SAS Data Step : Length(), COMPRESS(), PUT() 변수 타입 변환(수치형을 수치형태의 문자로 변환), LIKE 연산자, prxmatch() 정규식 함수
      • Python Dfply Package : .str.len(), .astype(str)
      • 파이썬 Base 프로그래밍 :

     


     

    • 12월에 입사원 사원들의 정보를 출력하시오.
    • [데이터 추출] 특정 날짜에 해당하는 데이터 추출 - 영문월(Month) 처리, 날자형 데이터 날짜형 문자로 변환
      • Oracle : to_cahr(), upper()
      • 파이썬 Pandas : pd.to_datetime(), month_name()
      • R 프로그래밍 : toupper(), month.add, month(), as.Date(), transform(), substr(), format()
      • R Dplyr Package : toupper(), month.abb(), month(), as.Date()
      • R sqldf Package : strftime()
      • Python pandasql Package : strftime()
      • R data.table Package : toupper(), month.abb(), month(), as.Date()
      • SAS Proc SQL : month(), substr(), Put() 의 monname 포맷, Input()
      • SAS Data Step : month(), substr(), Put() 의 monname 포맷, Input()
      • Python Dfply Package : make_symbolic(), pd.to_datetime(), month_name(), slice(), upper()
      • 파이썬 Base 프로그래밍 :

     


     

    • 이름에 영문자 “A”가 포함된 직원들의 정보를 출력하시오.
    • [문자 함수] 문자열에서 문자 검색 - 문자 검색 함수(Instr 함수)
      • Oracle : Instr 함수, Like
      • 파이썬 Pandas : .str.contains()
      • R 프로그래밍 : %like%
      • R Dplyr Package : %like%
      • R sqldf Package : Like 연산자, Instr 함수
      • Python pandasql Package : Like 연산자, Instr 함수
      • R data.table Package : %like%
      • SAS Proc SQL : index 함수, Find 함수, Scan 함수
      • SAS Data Step : index 함수, Find 함수, Scan 함수
      • Python Dfply Package : .str.contains()
      • 파이썬 Base 프로그래밍 :

     


     

    • [문제 변경] 사원번호(empno)가 관리자 사원번호(mgr) 에 존재하는 사원을 선택하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(In), 중복 제거(Distinct)
      • Oracle : 비상관 서브쿼리, In 연산자, Disitnct 연산자
      • 파이썬 Pandas : isin(), list(), unique()
      • R 프로그래밍 : %in%, unlist(), unique()
      • R Dplyr Package : %in%, unlist(), unique()
      • R sqldf Package : 비상관 서브쿼리, In 연산자, Disitnct 연산자
      • Python pandasql Package : 비상관 서브쿼리, In 연산자, Disitnct 연산자
      • R data.table Package : %in%, unlist(), unique()
      • SAS Proc SQL : 비상관 서브쿼리, In 연산자, Disitnct 연산자
      • SAS Data Step : PROC SUMMARY, CROSS JOIN (카테시안 곱) 구현, IF 조건문
      • Python Dfply Package : isin()
      • 파이썬 Base 프로그래밍 :

     


     

    • 입사일자에서 첫 2글자와 급여의 마지막 2글자로 구성된 신규 변수를 생성하시오.
    • [변수 생성] 신규 변수 생성 - 문자 추출과 문자 결합
      • Oracle : substr(), to_char(), 문자 결합 연산자(‘||’)
      • 파이썬 Pandas : str.slice(), 문자 결합 연산자(‘+’), astype(str)
      • R 프로그래밍 : paste(), paste0(), base::substr(), stringr::str_sub()
      • R Dplyr Package : dplyr::mutate(), stringi::stri_join(), stringr::str_c(), paste(), paste0(), stringr::str_sub()
      • R sqldf Package : typeof() 변수 형태 확인, datetime(), substr(), strftime(), cast(), 문자 결합 연산자(‘||’)
      • Python pandasql Package : typeof() 변수 형태 확인, datetime(), substr(), strftime(), cast(), 문자 결합 연산자(‘||’)
      • R data.table Package : stringi::stri_join(), stringr::str_c(), paste(), paste0(), stringr::str_sub()
      • SAS Proc SQL : put(), strip(), substr(), reverse(), prxchange() 정규식 함수, 문자 결합 연산자(‘||’), cat 함수, cats 함수
      • SAS Data Step : put(), strip(), substr(), reverse(), prxchange() 정규식 함수, 문자 결합 연산자(‘||’), cat 함수, cats 함수
      • Python Dfply Package : .str.slice(), astype(str), 문자 결합 연산자(‘+’)
      • 파이썬 Base 프로그래밍 :

     


     

    • 입사일자의 첫 2 숫자(19)가 급여의 1%보다 큰 직원들의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 문자 추출, 문자형 수치를 수치형으로 변환
      • Oracle : to_char()
      • 파이썬 Pandas : pd.to_numeric(), str.slice()
      • R 프로그래밍 : as.numeric(), base::substr()
      • R Dplyr Package : as.numeric(), stringr::str_sub()
      • R sqldf Package : typeof(), datetime(), substr(), cast()
      • Python pandasql Package : typeof(), datetime(), substr(), cast()
      • R data.table Package : as.numeric(), stringr::str_sub()
      • SAS Proc SQL : SUBSTR(), PUT, input(), year()
      • SAS Data Step : SUBSTR(), PUT, input(), year()
      • Python Dfply Package : make_symbolic(), pd.to_numeric(), str.slice()
      • 파이썬 Base 프로그래밍 :

     


     

    • 영업부서(‘SALES’) 또는 연구부서(‘RESEARCH’)에서 근무하고 있는 직원들의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(In)
      • Oracle : 비상관 서브쿼리, in 연산자
      • 파이썬 Pandas : isin()
      • R 프로그래밍 : %in%, unlist()
      • R Dplyr Package : %in%, unlist()
      • R sqldf Package : 비상관 서브쿼리, in 연산자
      • Python pandasql Package : 비상관 서브쿼리, in 연산자
      • R data.table Package : %in%, unlist()
      • SAS Proc SQL : 비상관 서브쿼리, in 연산자
      • SAS Data Step : Merge 구문, IF 조건문
      • Python Dfply Package : @pipe & def 사용자 정의 함수(pull_list), isin(),filter_by()
      • 파이썬 Base 프로그래밍 :

     


     

    • Jones의 급여에 해당하는 급여 등급을 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(부등호), 비등가 조인
      • Oracle : 비상관 서브쿼리, 비등가 조인, Between 연산자
      • 파이썬 Pandas : pd.merge 의 Cross join(카테시안 곱-Cartesian Product), assign, query()
      • R 프로그래밍 : subset(), merge 의 Cross join(카테시안 곱-Cartesian Product), Between 연산자
      • R Dplyr Package : dplyr::full_join 의 Cross join(카테시안 곱-Cartesian Product), between
      • R sqldf Package : 비상관 서브쿼리, 비등가 조인, Between 연산자
      • Python pandasql Package : 비상관 서브쿼리, 비등가 조인, Between 연산자
      • R data.table Package : DT Syntax 방식의 Cross join(카테시안 곱-Cartesian Product)
      • SAS Proc SQL : 비상관 서브쿼리, 비등가 조인, Between 연산자
      • SAS Data Step : CROSS JOIN (카테시안 곱) 구현, IF 조건문
      • Python Dfply Package : full_join 의 Cross join(카테시안 곱-Cartesian Product), filter_by(), between()
      • 파이썬 Base 프로그래밍 :

     


     

    • 입사일자가 매월 15일 이전에 입사한 직원들의 정보를 출력하시오.
    • [데이터 추출] 특정 날짜에 해당하는 데이터 추출 - 일자 추출
      • Oracle : To_char()
      • 파이썬 Pandas : datetime.now(), timestamp.strftime(), pd.to_numeric(), .str.slice()
      • R 프로그래밍 : as.numeric(), base::substr()
      • R Dplyr Package : as.numeric(), stringr::str_sub()
      • R sqldf Package : typeof(), cast(), substr(), datetime()
      • Python pandasql Package : typeof(), cast(), substr(), datetime(), strftime()
      • R data.table Package : as.numeric(), stringr::str_sub()
      • SAS Proc SQL : INPUT(), PUT(), DAY()
      • SAS Data Step : INPUT(), PUT(), DAY() 함수
      • Python Dfply Package : make_symbolic(), pd.to_numeric(), str.slice(), filter_by()
      • 파이썬 Base 프로그래밍 :

     


     

    • 특정 부서의 직원이 4명 미만인 부서에서 근무하고 있는 직원들의 정보를 삭제하시오.
    • [데이터 추출] 특정 조건을 해당하는 데이터 삭제 - 비상관 서브쿼리(In), Having count(*)
      • Oracle : Delete 구문, 비상관 서브쿼리, Having count(*)
      • 파이썬 Pandas : isin(), NOT(‘~’) 연산자, groupby(), count(), query(), pd.merge()
      • R 프로그래밍 : NOT(‘!’) 연산자, unlist(), subset(), aggregate() 의 length, %in%, merge()
      • R Dplyr Package : NOT(‘!’) 연산자, dplyr::tally(), dplyr::pull(), dplyr::inner_join()
      • R sqldf Package : Delete 구문, 비상관 서브쿼리, Having count(*)
      • Python pandasql Package : Delete 구문, 비상관 서브쿼리, Having count(*)
      • R data.table Package : %in%, NOT(‘!’) 연산자, .N, DT Syntax 방식의 데이터 결합
      • SAS Proc SQL : Delete 구문, 비상관 서브쿼리, Having count(*), 논리적 삭제
      • SAS Data Step : proc summary 의 n, Merge 구문, IF 조건문, Delete 구문
      • Python Dfply Package : NOT(‘~’) 연산자, summarize() 의 count(), @dfpipe & def 사용자 정의 함수(pull_fun)
      • 파이썬 Base 프로그래밍 :

     


     

    • 오늘 날짜를 기준으로 입사년차가 40년이 경과한 직원들의 정보를 삭제하시오.
    • [데이터 추출] 특정 조건을 해당하는 데이터 삭제 - 기준일자 사이의 기간(Gap) 계산
      • Oracle : Delete 구문, sysdate, to_char()
      • 파이썬 Pandas : pd.Timestamp.now(), pd.to_datetime(), .dt.days
      • R 프로그래밍 : Sys.Date(), NOT(‘!’) 연산자
      • R Dplyr Package : Sys.Date(), NOT(‘!’) 연산자
      • R sqldf Package : julianday(), date(), typeof(), cast(), datetime(), gsubfn::fn$sqldf() 외부 변수 참조, Sys.Date(), Delete 구문
      • Python pandasql Package : julianday(), strftime()
      • R data.table Package : Sys.Date(), NOT(‘!’) 연산자
      • SAS Proc SQL : round(), TODAY(), YRDIF()
      • SAS Data Step : round(), TODAY(), YRDIF()
      • Python Dfply Package : pd.Timestamp.now(), make_symbolic(), pd.to_datetime(), .dt.days
      • 파이썬 Base 프로그래밍 :

     


     

    • 부서이름의 길이와 부서에 속한 부서원의 숫자와 같은 부서의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(In), 문자길이(length)
      • Oracle : 비상관 서브쿼리, Length()
      • 파이썬 Pandas : str.len(), Groupby(), count()
      • R 프로그래밍 : stringr::str_length(), %in%, unlist(), aggregate()의 length
      • R Dplyr Package : nchar(), as.character(), %in%, tally(), unlist()
      • R sqldf Package : 비상관 서브쿼리, Length()
      • Python pandasql Package : 비상관 서브쿼리, Length()
      • R data.table Package : stringr::str_length(), %in%, .N
      • SAS Proc SQL : 비상관 서브쿼리, Length()
      • SAS Data Step : LENGTH 함수, compress 함수, Proc summary의 N, Merge 구문, IF 조건문
      • Python Dfply Package : @pipe & def 사용자 정의 함수(pull_list), str.len() , isin(), summarize() 의 Count()
      • 파이썬 Base 프로그래밍 :

     


     

    • 관리자 역할을 수행하고 있는 직원들을 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(In), 중복 제거(Distinct)
      • Oracle : 비상관 서버쿼리, In 연산자, Distinct 중복제거
      • 파이썬 Pandas : isin()
      • R 프로그래밍 : %in%, unlist()
      • R Dplyr Package : %in%, unlist()
      • R sqldf Package : 비상관 서버쿼리, In 연산자, Distinct 중복제거
      • Python pandasql Package : 비상관 서버쿼리, In 연산자, Distinct 중복제거
      • R data.table Package : %in%
      • SAS Proc SQL : 비상관 서버쿼리, In 연산자, Distinct 중복제거
      • SAS Data Step : Proc Sort 의 Nodupkey, Merge 구문, IF 조건문
      • R dtplyr Package : lazy_dt, %in%, unlist()
      • R tidytable Package : tidytable::filter, %in%, unlist()
      • Python Dfply Package : row_slice(). isin(), @pipe & def 사용자 정의 함수(pull_list)
      • 파이썬 Base 프로그래밍 :

     


     

    • 관리자 역할을 수행하고 있는 직원들의 수를 카운트하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(In), 건수 카운트
      • Oracle : 비상관 서브쿼리, Count(*), intersect - 교집합
      • 파이썬 Pandas : isin(), count()
      • R 프로그래밍 : %in%, unlist(), count()
      • R Dplyr Package : %in%, unlist(), summarize() 의 n_distinct()
      • R sqldf Package : 비상관 서브쿼리, Count(*), intersect - 교집합
      • Python pandasql Package : 비상관 서브쿼리, Count(*), intersect - 교집합
      • R data.table Package : %in%, length()
      • SAS Proc SQL : 비상관 서브쿼리, Count(*), intersect - 교집합
      • SAS Data Step : PROC SORT 의 Nodupkey, Merge 구문, IF 조건문, Proc summary
      • R dtplyr Package : lazy_dt(), as_tibble(), unlist(), summarize()의 n()
      • R tidytable Package : tidytable::filter.(), %in%, unlist(), Count.()
      • Python Dfply Package : isin(), summarize() 의 n(), @pipe & def 사용자 정의 함수(pull_list), count()
      • 파이썬 Base 프로그래밍 :

     


     

    • 동일한 일자에 입사한 직원의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 상관 서브쿼리(In), 내부조인
      • Oracle : 상관 서브쿼리, In 연산자, Not Equal(‘!=’)
      • 파이썬 Pandas : merge(), Not Equal(‘!=’), query(), filter() 변수 선택
      • R 프로그래밍 : subset(), Merge(), grep(), names()
      • R Dplyr Package : subset(), merge(), names(), %like%, inner_join()의 suffix, ends_with() 변수 선택
      • R sqldf Package : 상관 서브쿼리, In 연산자, Not Equal(‘!=’)
      • Python pandasql Package : 상관 서브쿼리, In 연산자, Not Equal(‘!=’)
      • R data.table Package : DT Syntax 방식의 데이터 결합,
      • SAS Proc SQL : 상관 서브쿼리, In 연산자, Not Equal(‘NE’)
      • SAS Data Step : CROSS JOIN (카테시안 곱) 구현
      • Python Dfply Package : @pipe & def 사용자 정의 함수(inner_join_merge)의 suffixes, ends_with()
      • 파이썬 Base 프로그래밍 :

     


     

    • 직원의 급여가 속한 급여등급을 조회 후 급여(‘sal)에서 급여 등급(‘grade’)에 해당하는 자리수를 선택하여 급여 등급과 비교하여 서로 같고, 급여 등급과 급여의 첫 자리를 비교하여 서로 다른 직원들의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비등가조인(NON-EQUI JOIN) 데이터 결합, 문자열 추출(Substr)
      • Oracle : 비등가 데이터 결합, Between, substr()
      • 파이썬 Pandas : pd.merge()의 Cross Join(카테시안곱), query(), pd.to_numeric(), astype(‘str’), str.slie(), fillna() 결측치처리, apply(), Lambda 함수, replace(), np.NaN, between(), pd.Series(), IF 조건문, apply(str) 와 apply(int) 데이터형 변환
      • R 프로그래밍 : subset(), merge()의 Cross Join(카테시안곱), between(), stringr::str_sub()
      • R Dplyr Package : dplyr::full_join()의 Cross Join(카테시안곱), between(), stringr::str_sub()
      • R sqldf Package : 비등가 데이터 결합, Between 연산자, substr()
      • Python pandasql Package : 비등가 데이터 결합, Between 연산자, substr()
      • R data.table Package : DT syntax 방식의 비등가 데이터 결합, substr()
      • SAS Proc SQL : 비등가 데이터 결합, Between, substr(), input() 와 Put() 데이터형 변환 함수, strip()
      • SAS Data Step : CROSS JOIN (카테시안 곱) 구현, Length 함수, IF 조건문, substr 함수, input() 와 Put() 데이터형 변환 함수, sbrip 함수
      • Python Dfply Package : full_join()의 Cross Join(카테시안곱), apply(), lambda 함수, pd.Series(), str.slice(), .astype(int), replace(), np.NaN
      • 파이썬 Base 프로그래밍 :

     


     

    • 관리하고 있는 부서원의 수가 가장 많은 부서를 담당하고 있는 관리자의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(max), having count()
      • Oracle : having count(), max(count()), ROW_NUMBER() 윈도우 함수, count(), WITH 구문
      • 파이썬 Pandas : groupby(), count(), loc[], count(), max()
      • R 프로그래밍 : subset(), aggregate(), function(x) 사용자 정의 함수, length(), max()
      • R Dplyr Package : dplyr::group_by(), dplyr::summarize() 의 n(), max()
      • R sqldf Package : having count(), count(), max(), ROW_NUMBER() 윈도우 함수, count()
      • Python pandasql Package : having count(), count(), max(), ROW_NUMBER() 윈도우 함수, count()
      • R data.table Package : IF 조건문, max(), .N, .SD(Subset of Dataframe), .N, keyby=, max()
      • SAS Proc SQL : having count(), max(count()), ROW_NUMBER() 윈도우 함수, count()
      • SAS Data Step : Proc summary 의 N=, Set 구문, n, proc rank
      • Python Dfply Package : summarize()의 count(), max()
      • 파이썬 Base 프로그래밍 :

     


     

    • 직원 이름과 15% 인상된 급여 계산 후 달러 표시와 함께 출력하시오.
    • [문자 함수와 수치형 함수] 문자 결합 함수와 반올림 함수 - 달러(‘$’) 출력
      • Oracle : lpad(), concat() 데이터 결합, rounc() 반올림 함수
      • 파이썬 Pandas : astype(int), apply(), lambda 함수, format()
      • R 프로그래밍 : priceR::format_dollars()
      • R Dplyr Package : formattable::currency(), as.integer(), scales::dollar(), Round()
      • R sqldf Package : cast(), round(), 데이터 결합(‘||’)
      • Python pandasql Package : cast(), round(), 데이터 결합(‘||’)
      • R data.table Package : priceR::format_dollars()
      • SAS Proc SQL : put() 함수의 dollar. 포맷 지정(데이터형 변환), STRIP(), Cats 함수, INT()
      • SAS Data Step : put() 함수의 dollar. 포맷 지정(데이터형 변환), STRIP(), Cats 함수, INT()
      • Python Dfply Package : astype(int), apply(), lambda 함수, format()
      • 파이썬 Base 프로그래밍 :

     


     

    143. Produce the output of the EMP table “EMPLOYEE_AND_JOB” for ename and job?

    • ename과 job을 연결하여서 신규 변수 “EMPLOYEE_AND_JOB”을 생성하여 출력하시오.
    • [문자 함수] 문자열 결합 함수
      • Oracle : ‘||’ 문자열 결합, concat() 문자열 결합 함수
      • 파이썬 Pandas : ‘+’ 문자열 결합
      • R 프로그래밍 : paste()
      • R Dplyr Package : stringi::stri_join()
      • R sqldf Package : ‘||’ 문자열 결합
      • Python pandasql Package : ‘||’ 문자열 결합
      • R data.table Package : stringi::stri_join()
      • SAS Proc SQL : ‘||’ 문자열 결합, STRIP(), CATS() 문자열 결합 함수
      • SAS Data Step : ‘||’ 문자열 결합, STRIP(), CATS() 문자열 결합 함수
      • Python Dfply Package : ‘+’ 문자열 결합
      • 파이썬 Base 프로그래밍 :

     


     

    • 직원들의 입사일자를 월 일 년(‘June 4 1988’) 형식으로 출력하시오.
    • [날짜 포맷] 날짜 출력 포맷 지정
      • Oracle : to_char()의 날짜 포맷 지정
      • 파이썬 Pandas : pd.to_datetime(), dt.strftime(), apply(), lambda 함수, info(), type(), dtypes, is_string_dtype
      • R 프로그래밍 : class(), Sys.setlocale(), format(), as.Date(), as.character
      • R Dplyr Package : Sys.setlocale(), as.character()
      • R sqldf Package : datetime(), strftime(), substr()
      • Python pandasql Package : datetime(), strftime(), substr()
      • R data.table Package : as.character()
      • SAS Proc SQL : PROC FORMAT 사용자 출력형식 생성, PUT() 함수의 날짜 포맷
      • SAS Data Step : PROC FORMAT 사용자 출력형식 생성, PUT() 함수의 날짜 포맷, INPUT 함수의 날짜 포맷(ANYDTDTE25., DATE9., ifmt25., nldate200.), STRIP 함수, YEAR 함수, compress()
      • Python Dfply Package : make_symbolic(), pd.to_datetime, strftime(), apply(), lambda 함수
      • 파이썬 Base 프로그래밍 :

     


     

    • 조건문을 사용하여 급여가 1,500 미만이면 ‘Less Salary’를 출력하고, 정확하게 1,500이면 ‘Exact Salary’로 출력하고, 1,500 이상이면 ‘More Salary’를 출력하시오.
    • [데이터 추출] 조건에 따라 값을 변경 - Case When 조건문
      • Oracle : CASE WHEN 조건문
      • 파이썬 Pandas : np.select(), if ~ elif ~ Else 조건문 분기, IF ~ ELSE 조건문, apply(), Lambda 함수
      • R 프로그래밍 : lapply(), function(x) 사용자 정의 함수, case_when 조건문, ifelse 조건문
      • R Dplyr Package : dplyr::case_when() 조건문
      • R sqldf Package : CASE WHEN 조건문
      • Python pandasql Package : CASE WHEN 조건문
      • R data.table Package : dplyr::case_when() 조건문
      • SAS Proc SQL : CASE WHEN 조건문
      • SAS Data Step : IF 조건문, Select 구문
      • Python Dfply Package : 사용자 정의 함수와 IF 조건문, make_symbolic(), np.select, apply(), lambda 함수
      • 파이썬 Base 프로그래밍 :

     


     

    • 현재 일자를 기준으로 사원별 회사 입사 후 근속 년수를 계산하시오.
    • [날짜 데이터] 날짜 기간 차이 계산 - 현재 날짜
      • Oracle : roudn() 함수, sysdate
      • 파이썬 Pandas : assign(), pd.Timestamp.now(), pd.to_datetime(), dt.days
      • R 프로그래밍 : transform(), Sys.Date()
      • R Dplyr Package : dplyr::mutate(), Sys.Date()
      • R sqldf Package : datetime(), strftime(), julianday(), date(), substr()
      • Python pandasql Package : datetime(), strftime(), julianday(), date(), substr()
      • R data.table Package : Sys.Date()
      • SAS Proc SQL : DATDIF 함수, YRDIF 함수, Today()
      • SAS Data Step : DATDIF 함수, YRDIF 함수, Today()
      • Python Dfply Package : pd.Timestamp.now(), make_symbolic(), pd.to_datetime(), dt.days
      • 파이썬 Base 프로그래밍 :

     


     

    • ‘nn/nn’ 형태의 문자열에 대하여 처음 2개 문자와 마지막 2개 문자가 숫자인지 확인하고, 가운데 문자가 ‘/‘ 존재하는지 확인한다. 조건이 만족하면 “Yes”를 만족하지 않으면 “NO”를 출력한다. 다음 ‘12/54’,’01/1a’,’99/98’ 문자열에 대하여 위 조건문을 확인하시오.
    • [데이터 추출] 조건에 따라 값을 변경 - 문자함수와 조건문
      • Oracle : DECODE 함수, TRANSLATE(), SUBSTR(), TRUNC(), LENGTH(), ROUND(), CASE WHEN 조건문
      • 파이썬 Pandas : str.contains(), np.select(), translate(), ord(), strip(), .join() 문자열 결합, re.findall()
      • R 프로그래밍 : stringr::str_detect(), base::grepl(), Data.frame(), dplyr::case_when(), str_detect(), lapply(), function(x) 사용자 정의 함수
      • R Dplyr Package : dplyr::case_when(), stringr::str_detect, grepl()
      • R sqldf Package : REPLACE(), grepl(), 사용자 정의 함수, count(), AVG(), gsubfn 패키지(gsubfn::fn$sqldf) 외부 변수 참조, paste(), sprintf(), For Loop 반복문, sqlite_version(), 지역 변수 생성
      • Python pandasql Package : REPLACE()
      • R data.table Package : dplyr::case_when(), stringr::str_detect(), grepl()
      • SAS Proc SQL : NOTDIGIT 함수, SUBSTR, CASE WHEN 조건문, prxmatch 정규식 함수
      • SAS Data Step : NOTDIGIT 함수, SUBSTR, CASE WHEN 조건문, prxmatch 정규식 함수
      • Python Dfply Package : str.contains(), make_symbolic(), np.select, str.contains(), 정규식 포맷
      • 파이썬 Base 프로그래밍 :

     


     

    • 15일 이전에 입사한 직원은 해당월의 마지막 금요일에 급여가 지급되고, 15일 이후에 입사한 직원은 다음 달 마지막 금요일에 급여가 지급된다. 직원들의 입사일자와 입사 후 첫 번째 지급된 급여일자를 출력하고, 입사일자의 일자를 기준으로 정렬하시오
    • [날짜 함수] 특정 조건에 따라 해당 날짜 반환
      • Oracle : CASE WHEN 조건문, TO_CHAR(), NEXT_DAY(), LAST_DAY(), ADD_months()
      • 파이썬 Pandas : pd.to_datetime(), MonthEnd(), Day(), Week(), pd.DateOffset(), apply(), Lambda 함수, IF 조건문, DT.date.today(), REL.relativedelta(), apply(), relativedelta()
      • R 프로그래밍 : apply(), vapply(), sapply(), 사용자 함수 생성, lubridate::ceiling_date(), lubridate::rollback(), class(), base::ifelse 조건문, day(), ifelse() 조건문, lubridate::ceiling_date(), data.table::fifelse() 조건문
      • R Dplyr Package : dplyr::if_else() 조건문, ceiling_date(), rollback()
      • R sqldf Package : strftime(), datetime(), date(), Case When 조건문
      • Python pandasql Package : strftime(), datetime(), date(), Case When 조건문
      • R data.table Package : dplyr::if_else() 조건문, data.table::fifelse() 조건문, ceiling_date(), rollback()
      • SAS Proc SQL : intnx(), day(), case when 조건문
      • SAS Data Step : day(), intnx() 함수, IF 조건문
      • Python Dfply Package : make_symbolic(), pd.to_datetime(), MonthEnd(), Day(), pd.DateOffset()
      • 파이썬 Base 프로그래밍 :

     


     

    • 담당하고 있는 부서의 부서원들 보다 적은 급여를 수령하는 관리자의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 상관 서브쿼리(Any), 비등가 데이터 결합
      • Oracle : 상관 서브쿼리, Any 연산자, Min(), 비등가 조인
      • 파이썬 Pandas : pd.merge(), .astype(np.float64), Query(), info()
      • R 프로그래밍 : subset(), Merge(), aggregate() 의 사용자 정의 함수, Min()
      • R Dplyr Package : dplyr::inner_join(), summarise()의 최소값(Min)
      • R sqldf Package : 상관 서브쿼리, Any 연산자, Min(), 비등가 조인
      • Python pandasql Package : 상관 서브쿼리, Any 연산자, Min(), 비등가 조인
      • R data.table Package : Merge 방식 데이터 결합, Min(), %in%, DT[]
      • SAS Proc SQL : 상관 서브쿼리, Any 연산자, Min(), 비등가 조인
      • SAS Data Step : proc summary 의 Min, Merge 구문, IF 조건문, Rename 구문
      • Python Dfply Package : @pipe & def 사용자 정의 함수(inner_join_merge), summarize(), Min(), Filter_by()
      • 파이썬 Base 프로그래밍 :

     


     

    • 관리자 “BLAKE”가 관리하고 있는 부서원의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리, 등가 데이터 결합
      • Oracle : 비상관 서브쿼리, 등가 데이터 결합
      • 파이썬 Pandas : .tolist()
      • R 프로그래밍 : unlist(), is.na(), NOT(‘!’) 연산자
      • R Dplyr Package : unlist(), dplyr::filter()
      • R sqldf Package : 비상관 서브쿼리, 등가 데이터 결합
      • Python pandasql Package : 비상관 서브쿼리, 등가 데이터 결합
      • R data.table Package : 등호 비교 연산자(‘==’)
      • SAS Proc SQL : 비상관 서브쿼리, 등가 데이터 결합
      • SAS Data Step : proc sort의 nodupkey, Rename 데이터 세트 옵션, Merge 구문, IF 조건문
      • Python Dfply Package : @dfpipe 와 def 사용자 정의 함수(pull_fun), filter_by()
      • 파이썬 Base 프로그래밍 :

     


     

    • 서브쿼리를 사용하여서 관리자로 근무하고 있는 직원들의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(In), 중복 제거(Distinct)
      • Oracle : 비상관 서브쿼리, IN 연산자
      • 파이썬 Pandas : isin()
      • R 프로그래밍 : %in%, unlist()
      • R Dplyr Package : %in%, unlist()
      • R sqldf Package : 비상관 서브쿼리, IN 연산자
      • Python pandasql Package : 비상관 서브쿼리, IN 연산자
      • R data.table Package : %in%, unlist()
      • SAS Proc SQL : 비상관 서브쿼리, IN 연산자
      • SAS Data Step : proc sort의 nodupkey, Rename 데이터 세트 옵션, Merge 구문, IF 조건문
      • Python Dfply Package : @pipe 와 def 사용자 정의 함수(pull_list), filter_by(), isin()
      • 파이썬 Base 프로그래밍 :

     


     

    • 관리자의 이름이 ‘JONES’인 직원들의 정보와 ‘JONES’를 관리하고 있는 관리자의 정보를 함께 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리, 데이터 상하 결합(UNION)
      • Oracle : 비상관 서브쿼리, UNION 데이터 상하 결합
      • 파이썬 Pandas : iloc[], OR(‘|’) 연산자
      • R 프로그래밍 : %in%, OR(‘|’) 연산자
      • R Dplyr Package : OR(‘|’) 연산자, pull()
      • R sqldf Package : 비상관 서브쿼리, UNION ALL 데이터 상하 결합
      • Python pandasql Package : 비상관 서브쿼리, UNION ALL 데이터 상하 결합
      • R data.table Package : OR(‘|’) 연산자
      • SAS Proc SQL : 비상관 서브쿼리, UNION 데이터 상하 결합
      • SAS Data Step : proc sort 의 nodupkey, Merge 구문, IF 조건문, SET 상하 결합 구문
      • Python Dfply Package : OR(‘|’) 연산자, @dfpipe & def 사용자 정의 함수(pull_fun)
      • 파이썬 Base 프로그래밍 :

     


     

    153. Define variable representing the expressions used to calculate on employee’s total annual remuneration.

    • 수수료를 포함한 직원의 년봉을 계산하여 신규 변수를 생성하시오.
    • [변수 생성] 신규 변수를 생성하여 출력 - 결측치 처리
      • Oracle : NVL 함수
      • 파이썬 Pandas : replace(), np.nan
      • R 프로그래밍 : transform(), ifelse(), is.na()
      • R Dplyr Package : dplyr::mutate(), ifelse(), is.na()
      • R sqldf Package : ifnull()
      • Python pandasql Package : ifnull()
      • R data.table Package : ifelse(), is.na()
      • SAS Proc SQL : Coalesce(), IFN() 함수
      • SAS Data Step : Coalesce(), IFN() 함수, KEEP 구문
      • Python Dfply Package : if_else(), isnull()
      • 파이썬 Base 프로그래밍 :

     


     

    • 연간 총 30,000 이상 수익을 올릴 수 있는 직원들의 정보를 출력하시오. (153번에 생성한 신규 변수의 값이 30,000 이상)
    • 참고 프로그램 : 161번
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 결측치 처리
      • Oracle : NVL 함수
      • 파이썬 Pandas : replace(), np.nan, Exec() 파이썬 코드 동적 실행, compile() & eval() 프로그램 컴파일과 소스 실행
      • R 프로그래밍 : transform(), ifelse(), is.na(), parse() 와 eval() 프로그램 컴파일과 코드 실행, base::str2lang() 와 eval() 프로그램 컴파일과 코드 실행
      • R Dplyr Package : dplyr::mutate(), ifelse(), is.na(), parse() 와 eval() 프로그램 컴파일과 코드 실행
      • R sqldf Package : ifnull(), gsubfn 패키지(gsubfn::fn$sqldf) 외부 변수 참조 프로그램 실행
      • Python pandasql Package : ifnull(), format(), globals() 전역 변수 참조
      • R data.table Package : ifelse(), is.na(), parse() 와 eval() ,프로그램 컴파일과 코드 실행
      • SAS Proc SQL : Coalesce(), IFN() 함수
      • SAS Data Step : Coalesce(), IFN() 함수, KEEP 구문
      • Python Dfply Package : if_else(), isnull()
      • 파이썬 Base 프로그래밍 :

     


     

    • 관리자 역할을 수행하고 있는 직원들의 수를 집계하시오.
    • [데이터 집계] 특정 조건을 만족하는 데이터 집계 - 총건수 카운트
      • Oracle : 비상관 서브쿼리, Count(*)
      • 파이썬 Pandas : isin(), agg()의 [‘count’], Count()
      • R 프로그래밍 : nrow(), unlist()
      • R Dplyr Package : %in%, unlist(), dplyr::summarise() 의 n()
      • R sqldf Package : 비상관 서브쿼리, Count(*)
      • Python pandasql Package : 비상관 서브쿼리, Count(*)
      • R data.table Package : %in%, .N
      • SAS Proc SQL : 비상관 서브쿼리, Count(*)
      • SAS Data Step : PROC SORT의 Nodupkey 중복 제거, Merge 구문, IF 조건문, Proc Summary의 N,
      • Python Dfply Package : @pipe 와 def 사용자 정의 함수(pull_list), isin(), summarize()의 count()
      • 파이썬 Base 프로그래밍 :

     


     

    156. Find out the avg sal and avg total remuneration for each job type remember salesman earn commission.

    • 개별 직무별 직원들의 수수료(commission)를 포함한 급여 평균과 합계를 집계하시오.
    • [집계 함수] 그룹별 평균과 합계 계산 - 결측치 처리
      • Oracle : avg(), sum(), NVL()
      • 파이썬 Pandas : assign(), replace(), groupby(), agg()의 [‘mean’,’sum’]
      • R 프로그래밍 : transform(), ifelse(), is.na(), aggregate()의 function(x) 사용자 정의 함수, Mean(), Sum(), do.call(), rbind, tapply(), with()
      • R Dplyr Package : ifelse(), is.na(), dplyr::summarise()의 mean()과 sum() 함수
      • R sqldf Package : avg(), sum(), NVL()
      • Python pandasql Package : avg(), sum(), NVL()
      • R data.table Package : ifelse(), is.na(), mean(), sum()
      • SAS Proc SQL : avg(), sum(), NVL()
      • SAS Data Step : COALESCE(), Proc Summary의 MEAN과 SUM 인수
      • Python Dfply Package : if_else(), isnull(), Mean(), Sum()
      • 파이썬 Base 프로그래밍 :

     


     

    • 모든 직원의 사원번호가 유일하게 할당되었는지 확인하시오.
    • [집계 함수] 데이터 유일성 체크 - 데이터 중복 제거
      • Oracle : count(), Distinct, Having count()
      • 파이썬 Pandas : agg()의 ‘count’와 ‘nunique’
      • R 프로그래밍 : plyr::summarise()의 length()와 length(unique()), dplyr::summarise()의 n()과 n_distinct(), broom ::tidy(), table(), Merge(), dplyr::add_tally(), dplyr::add_count(), plyr::ddply(), ave()
      • R Dplyr Package : dplyr::summarise()의 n()과 n_distinct(), is.na(), ungroup()
      • R sqldf Package : count(), Distinct
      • Python pandasql Package : count(), Distinct
      • R data.table Package : .N, uniqueN(), is.na(), dplyr::n_distinct()
      • SAS Proc SQL : count(), Distinct, Having count()
      • SAS Data Step : PROC SUMMARY의 N, Proc sort의 Nodupkey 옵션, Merge 구문, FIRST., 누적합, IF 조건문
      • Python Dfply Package : summarize()의 .count()와 .nunique()
      • 파이썬 Base 프로그래밍 :

     


     

    • 관리자 별로 담당하고 있는 직원 중에서 최소 급여를 수령하는 직원을 선택하고, 이 중에서 급여가 1000을 초과하는 직원의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(In), 최소값(Min)
      • Oracle : 비상관 서브쿼리, IN 연산자, Min()
      • 파이썬 Pandas : pd.merge(), agg()의 np.min, .loc[], lambda 함수
      • R 프로그래밍 : subset(), merge(), aggregate()와 function(x) 사용자 정의 함수(Min())
      • R Dplyr Package : inner_join(), is.na(), dplyr::summarise()의 min(), ungroup()
      • R sqldf Package : 비상관 서브쿼리, IN 연산자, Min()
      • Python pandasql Package : 비상관 서브쿼리, IN 연산자, Min()
      • R data.table Package : merge 방식 데이터 결합, DT Syntax 방식 데이터 결합, min(), IF 조건문, anyNA(), is.na()
      • SAS Proc SQL : 비상관 서브쿼리, IN 연산자, Min()
      • SAS Data Step : PROC SUMMARY의 MIN, MERGE 구문, IF 조건문
      • Python Dfply Package : @pipe & def 사용자 정의 함수(inner_join_merge), Summarize()의 MIN()
      • 파이썬 Base 프로그래밍 :

     


     

    • 사무직(‘clerks’) 직원을 제외하고 년간 30000 달러를 초과하여 수령하는 직원의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비등가 데이터 결합, Between 연산, 결측치 처리, 다중 테이블 결합
      • Oracle : NVL(), Between 연산자, 비등가 데이터 결합
      • 파이썬 Pandas : pd.merge()의 Cross Join(카테시안곱), query(), loc[], lambda 함수, replace(), np.nan
      • R 프로그래밍 : subset(), base::merge의 Cross Join(카테시안곱), Between, ifelse(), is.na()
      • R Dplyr Package : dplyr::inner_join(), dplyr::full_join()의 Cross Join(카테시안곱), between(), ifelse(), is.na()
      • R sqldf Package : ifnull(), Between 연산자, 비등가 데이터 결합
      • Python pandasql Package : ifnull(), Between 연산자, 비등가 데이터 결합
      • R data.table Package : DT Syntax 방식의 Cross Join(카테시안곱), fcoalesce()
      • SAS Proc SQL : NVL(), Between 연산자, 비등가 데이터 결합
      • SAS Data Step : CROSS JOIN (카테시안 곱) 구현, MERGE 구문, IF 조건문, coalesce()
      • Python Dfply Package : @pipe & def 사용자 정의 함수(inner_join_merge), full_join()의 Cross Join(카테시안곱), between(), if_else(), isnull()
      • 파이썬 Base 프로그래밍 :

     


     

    161. find out the all employees who joined the company before their manager.

    • 담당 관리자 보다 먼저 입사한 직원들의 정보를 출력하시오.
    • 참고 프로그램 : 동적 프로그램 실행 - 154번,161번, 162번
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 상관 서브쿼리(In), 우선 순위 비교
      • Oracle : 상관 서브쿼리
      • 파이썬 Pandas : pd.merge(), Query(), lambda 함수, IF 조건문, endswith()
      • R 프로그래밍 : subset(), merge(), grep(), names(), base::endsWith(), names(), %in%, sapply(), function(x) 사용자 정의 함수, grepl()
      • R Dplyr Package : dplyr::inner_join(), ends_with(), dplyr::rename_all(), gsub()
      • R sqldf Package : 상관 서브쿼리
      • Python pandasql Package : 상관 서브쿼리
      • R data.table Package : DT Syntax 방식의 데이터 결합, colnames()
      • SAS Proc SQL : 상관 서브쿼리
      • SAS Data Step : Merge 구문, IF 조건문
      • Python Dfply Package : @pipe 와 def 사용자 정의 함수(rename_fun), suffixes, ends_with(), literal_eval() 텍스트 구문 실행(exec 154번 참고)
      • 파이썬 Base 프로그래밍 :

     


     

    • 사원 정보와 해당 관리자의 정보를 함께 출력한다. 해당 관리자가 없는 경우 관리자 이름에 ‘No Manager’를 출력하시오.
    • 참고 프로그램 : 동적 프로그램 실행 - 154번,161번, 162번
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 데이터 상하 결합(UNION), 변수명 변경
      • Oracle : UNION, IS NULL
      • 파이썬 Pandas : pd.merge(), columns, str.rstrip(), rename(), copy.deepcopy(), pd.concat() 데이터 상하 결합
      • R 프로그래밍 : merge(), Grep(), names(), gsub(), colnames(), reshape::rename(), is.na(), union()
      • R Dplyr Package : dplyr::inner_join(), dplyr::rename_all(), dplyr::rename(), union()
      • R sqldf Package : UNION, IS NULL
      • Python pandasql Package : UNION, IS NULL
      • R data.table Package : DT Syntax 방식의 데이터 결합, is.na(), funion()
      • SAS Proc SQL : UNION, IS NULL
      • SAS Data Step : MERGE 구문, IF 조건문, SET 구문 - 데이터 상하 결합
      • Python Dfply Package : @pipe & def (inner_join_merge) 사용자 정의 함수, @pipe 와 def 사용자 정의 함수(rename_fun), literal_eval() 텍트스 형태의 파이썬 코드 동적 실행(exec 154번 참고), rename_fun, rename(), Union()
      • 파이썬 Base 프로그래밍 :

     


     

    • 개별 직무에서 최대 급여를 받는 사원들의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 상관 서브쿼리(Max)
      • Oracle : 상관 서브쿼리, Max()
      • 파이썬 Pandas : pd.merge(), agg(), np.max
      • R 프로그래밍 : merge(), aggregate() 의 function(x) 사용자 정의 함수(Max)
      • R Dplyr Package : inner_join(), dplyr::summarise() 의 Max()
      • R sqldf Package : 상관 서브쿼리, Max()
      • Python pandasql Package : 상관 서브쿼리, Max()
      • R data.table Package : Merge 방식의 데이터 결합, Max()
      • SAS Proc SQL : 상관 서브쿼리, Max()
      • SAS Data Step : PROC SUMMARY의 Max, Merge 구문, IF 조건문
      • Python Dfply Package : @pipe & def 사용자 정의 함수(inner_join_merge), summarize()의 max()
      • 파이썬 Base 프로그래밍 :

     


     

    • 개별 직무에서 최소 급여를 받는 사원들의 정보를 출력하시오
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 상관 서브쿼리(Min)
      • Oracle : 상관 서브쿼리, Min()
      • 파이썬 Pandas : pd.merge(), agg(), np.Min
      • R 프로그래밍 : merge(), aggregate() 의 function(x) 사용자 정의 함수(Min)
      • R Dplyr Package : inner_join(), dplyr::summarise() 의 Min()
      • R sqldf Package : 상관 서브쿼리, Min()
      • Python pandasql Package : 상관 서브쿼리, Min()
      • R data.table Package : Merge 방식의 데이터 결합, DT Syntax 방식의 데이터 결합, Min()
      • SAS Proc SQL : 상관 서브쿼리, Min()
      • SAS Data Step : PROC SUMMARY의 Min, Merge 구문, IF 조건문
      • Python Dfply Package : @pipe & def 사용자 정의 함수(inner_join_merge), summarize()의 Min()
      • 파이썬 Base 프로그래밍 :

     


     

    • 개별 부서별로 입사일자를 내림차순 기준으로 정렬하여서 최근에 입사한 직원들의 정보를 확인하시오.
    • [데이터 정렬] 오름차순과 내림차순 정렬
      • Oracle : Order by 구문의 내림차순(Desc), 오름차순(Asc)
      • 파이썬 Pandas : sort_values()의 ascending 인수
      • R 프로그래밍 : arrange() 의 desc(), order()의 내림차순(‘-‘) 인수, xtfrm(), with(), as.numeric()
      • R Dplyr Package : dplyr::arrange()의 내림차순(Desc)
      • R sqldf Package : Order by 구문의 내림차순(Desc), 오름차순(Asc)
      • Python pandasql Package : Order by 구문의 내림차순(Desc), 오름차순(Asc)
      • R data.table Package : data.table::setorder()의 내림차순(‘-‘) 인수, order()의 내림차순(‘-‘) 인수
      • SAS Proc SQL : Order by 구문의 내림차순(Desc), 오름차순(Asc)
      • SAS Data Step : Proc sort의 내림차순(‘Descending’)
      • Python Dfply Package : arrange()의 내림차순(Desc)
      • 파이썬 Base 프로그래밍 :

     


     

    • 본인이 근무하고 있는 부서의 평균 급여보다 더 많은 급여를 수령하는 직원들의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 상관 서브쿼리(평균)
      • Oracle : 상관 서브쿼리, Avg()
      • 파이썬 Pandas : pd.merge(), query(), sort_values()
      • R 프로그래밍 : arrange(), Subset(), Merge(), aggregate(), mean()
      • R Dplyr Package : dplyr::inner_join(), dplyr::summarise()의 mean()
      • R sqldf Package : 상관 서브쿼리, Avg()
      • Python pandasql Package : 상관 서브쿼리, Avg()
      • R data.table Package : Merge() 방식의 데이터 결합, Mean(), Order(), Rank()
      • SAS Proc SQL : 상관 서브쿼리, Avg()
      • SAS Data Step : PROC SUMMARY의 Mean, Merge 구문, IF 조건문, Rename
      • Python Dfply Package : @pipe & def 사용자 정의 함수(inner_join_merge), summarize()의 Mean()
      • 파이썬 Base 프로그래밍 :

     


     

    • 인사 정보(‘EMP’)테이블을 조회하여 부서 정보(‘DEPT’)테이블에서 별도의 부서원이 존재하지 않는 부서 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(중복 제거를 통한 유일한 값 추출), Not in 연산자
      • Oracle : 비상관 서브쿼리, Distinct 중복 제거, Not in 연산자
      • 파이썬 Pandas : NOT(‘~’) 연산자, isin(), unique() 중복 제거
      • R 프로그래밍 : NOT(‘!’) 연산자, %in%, unlist(), unique()
      • R Dplyr Package : NOT(‘!’) 연산자, dplyr::distinct() 중복 제거, unlist()
      • R sqldf Package : 비상관 서브쿼리, Distinct 중복 제거, Not in 연산자
      • Python pandasql Package : 비상관 서브쿼리, Distinct 중복 제거, Not in 연산자
      • R data.table Package : NOT(‘!’) 연산자, unlist(), unique() 중복 제거
      • SAS Proc SQL : 비상관 서브쿼리, Distinct 중복 제거, Not in 연산자
      • SAS Data Step : Proc sort의 nodupkey, Merge 구문, IF 조건문
      • Python Dfply Package : @pipe 와 def 사용자 정의 함수(pull_list), isin(), distinct()
      • 파이썬 Base 프로그래밍 :

     


     

    168. display the dept no with highest annual remuneration bill as compensation.

    • 직원들의 급여 합계가 가장 많은 부서를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(Max), 그룹 합계 최대값, 그룹 집계 함수
      • Oracle : 비상관 서브쿼리, Having sum(), max(), 인라인뷰(Inline View)
      • 파이썬 Pandas : sum(), max(), .loc[], Lambda 함수, filter()
      • R 프로그래밍 : group_by(), max(), aggregate(), list(), dplyr::filter(), plyr::ddply(), sum(), subset(), function(x) 사용자 정의 함수, plyr::adply(), tapply(), sapply(), Split(), dplyr::summarise(), doBy::summaryBy(), Hmisc::summarize(), ave(), with(), transform()
      • R Dplyr Package : dplyr::summarise(), sum(), dplyr::top_n(), desc()
      • R sqldf Package : 비상관 서브쿼리, Having sum(), max(), 인라인뷰(Inline View)
      • Python pandasql Package : 비상관 서브쿼리, Having sum(), max(), 인라인뷰(Inline View)
      • R data.table Package : .SD(Subset of Dataframe), keyby= , max()
      • SAS Proc SQL : 비상관 서브쿼리, Having sum(), max(), 인라인뷰(Inline View)
      • SAS Data Step : proc summary의 SUM=, Set 구문, obs= 데이터 세트 옵션, proc summary의 max= 와 maxid()
      • Python Dfply Package : group_by(), summarize()의 sum(), ungroup(), filter_by()
      • 파이썬 Base 프로그래밍 :

     


     

    • 입사 년도별 사원수를 집계하시오.
    • [날짜 데이터 처리] 날짜 형식 변환 - 년도 형식 출력
      • Oracle : to_char()의 ‘yyyy’
      • 파이썬 Pandas : groupby(), str.slice(), count()
      • R 프로그래밍 : plyr::ddply(), base::substr(), summarise, length(), aggregate(), cbind(), base::substr(), length, epiDisplay
      • R Dplyr Package : dplyr::group_by(), stringr::str_sub(), dplyr::summarize()의 n()
      • R sqldf Package : substr(), datetime()
      • Python pandasql Package : substr()
      • R data.table Package : length(), stringr::str_sub(), keyby=
      • SAS Proc SQL : put()
      • SAS Data Step : put(), Proc Summary의 N=, FIRST. 와 LAST.
      • Python Dfply Package : str.slice(), group_by(), summarize()의 count()
      • 파이썬 Base 프로그래밍 :

     


     

    170. display avg sal figure for the dept.

    • 부서별 평균 급여를 출력하시오.
    • [데이터 추출] 그룹별 평균 계산 - Avg
      • Oracle : Group by, AVG()
      • 파이썬 Pandas : groupby(), mean()
      • R 프로그래밍 : plyr::ddply(), summarise, mean(), aggregate()의 mean, cbind()
      • R Dplyr Package : dplyr::group_by(), dplyr::summarize()의 Mean()
      • R sqldf Package : Group by, AVG()
      • Python pandasql Package : Group by, AVG()
      • R data.table Package : mean(), key=
      • SAS Proc SQL : Group by, AVG()
      • SAS Data Step : PROC SUMMARY의 MEAN과 Nway, FIRST. 와 LAST.
      • Python Dfply Package : group_by(), summarize()의 Mean()
      • 파이썬 Base 프로그래밍 :

     


     

    • 가장 최근에 입사한 직원의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(Max)
      • Oracle : 비상관 서브쿼리, Max(), row_number() 윈도우 함수
      • 파이썬 Pandas : max(), query()
      • R 프로그래밍 : max(), subset()
      • R Dplyr Package : dplyr::filter(), max()
      • R sqldf Package : 비상관 서브쿼리, Max(), row_number() 윈도우 함수
      • Python pandasql Package : 비상관 서브쿼리, Max(), row_number() 윈도우 함수
      • R data.table Package : max()
      • SAS Proc SQL : 비상관 서브쿼리, Max(), having max()
      • SAS Data Step : obs 데이터 세트 옵션, Proc summary의 max와 maxid
      • Python Dfply Package : filter_by(), max()
      • 파이썬 Base 프로그래밍 :

     


     

    172. display employees who can earn more than lowest Sal in dept no 30

    • 부서번호 30에서 근무하는 직원의 최소 급여보다 더 많은 급여를 수령하는 직원들의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(Min)
      • Oracle : 비상관 서브쿼리, min()
      • 파이썬 Pandas : min()
      • R 프로그래밍 : min()
      • R Dplyr Package : dplyr::summarize()의 min(), unlist()
      • R sqldf Package : 비상관 서브쿼리, min()
      • Python pandasql Package : 비상관 서브쿼리, min()
      • R data.table Package : min()
      • SAS Proc SQL : 비상관 서브쿼리, min()
      • SAS Data Step : Proc summary의 min=, CROSS JOIN (카테시안 곱) 구현, Nobs 데이터 세트 옵션
      • Python Dfply Package : filter_by(), summarize()의 min()
      • 파이썬 Base 프로그래밍 :

     


     

    • 부서번호 30에서 근무하는 직원들의 최대 급여보다 더 많은 급여를 수령하는 직원들의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(Max)
      • Oracle : 비상관 서브쿼리, Max(), All() 연산자
      • 파이썬 Pandas : max()
      • R 프로그래밍 : max()
      • R Dplyr Package : dplyr::summarize()의 max(), unlist()
      • R sqldf Package : 비상관 서브쿼리, Max(), All() 연산자
      • Python pandasql Package : 비상관 서브쿼리, Max()
      • R data.table Package : max()
      • SAS Proc SQL : 비상관 서브쿼리, Max(), All() 연산자
      • SAS Data Step : Proc summary의 max=, CROSS JOIN (카테시안 곱) 구현, IF 조건문
      • Python Dfply Package : @dfpipe & def 사용자 정의 함수(pull_fun), summarize()의 max()
      • 파이썬 Base 프로그래밍 :

     


     

    • 사원 정보에 부서명을 추가하여 출력하시오.
    • 유사문제 : 91, 94, 95, 174, 210번
    • [데이터 추출] 내부 조인(Inner Join)을 만족하는 데이터 추출
      • Oracle : 내부 조인
      • 파이썬 Pandas : pd.merge()의 ‘inner’
      • R 프로그래밍 : arrange(), merge()의 all=F
      • R Dplyr Package : dplyr::inner_join(), dplyr::arrange()
      • R sqldf Package : 내부 조인
      • Python pandasql Package : 내부 조인
      • R data.table Package : merge 방식의 데이터 결합 - 내부 조인, DT Syntax 방식의 데이터 결합, order(), Rank()
      • SAS Proc SQL : 내부 조인
      • SAS Data Step : Merge 구문, IF조건문
      • Python Dfply Package : @pipe & def 사용자 정의 함수(inner_join_merge), arrange()
      • 파이썬 Base 프로그래밍 :

     


     

    • 부서원이 4명 이상인 부서 정보를 출력하시오.
    • 유사문제 : 109, 176, 185
    • [데이터 추출] 그룹 집계 후 특정 조건을 만족하는 그룹의 집계 통계량 출력 - having count(*)
      • Oracle : having count(*)
      • 파이썬 Pandas : groupby(), count(), query()
      • R 프로그래밍 : subset(), aggregate(), function(x) 사용자 정의 함수, length(), plyr::ddply(), summarize, dplyr::filter()
      • R Dplyr Package : dplyr::group_by(), dplyr::summarize()의 n(), dplyr::filter()
      • R sqldf Package : having count(*)
      • Python pandasql Package : having count(*)
      • R data.table Package : length(), .N , keyby=
      • SAS Proc SQL : group by, having count(*)
      • SAS Data Step : PROC SUMMARY의 N=, where 데이터 세트 옵션, SET 구문, first. 과 LAST., IF 조건문
      • Python Dfply Package : summarize()의 count(), filter_by()
      • 파이썬 Base 프로그래밍 :

     


     

    • 평균 급여보다 더 큰 급여를 수령하는 직원의 정보를 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(avg - 평균)
      • Oracle : 비상관 서브쿼리, AVG()
      • 파이썬 Pandas : mean()
      • R 프로그래밍 : mean()
      • R Dplyr Package : mean(), dplyr::summarise()의 mean(), unlist()
      • R sqldf Package : 비상관 서브쿼리, AVG()
      • Python pandasql Package : 비상관 서브쿼리, AVG()
      • R data.table Package : DT Syntax 방식의 데이터 결합, mean()
      • SAS Proc SQL : 비상관 서브쿼리, AVG()
      • SAS Data Step : PROC SUMMARY의 MEAN=, CROSS JOIN (카테시안 곱) 구현, IF 조건문
      • Python Dfply Package : mean()
      • 파이썬 Base 프로그래밍 :

     


     

    • 급여 순위 10번째(10등) 직원의 사원 정보를 출력하시오.
    • [데이터 추출] 데이터 순위 결과 반환 - RANK
      • Oracle : row_number() 윈도우 함수
      • 파이썬 Pandas : sort_values()
      • R 프로그래밍 : order()
      • R Dplyr Package : dplyr::arrange(), dplyr::slice(), tidyfst::arrange_dt(), tidyfst::slice_dt(), tidyfst::summarise_dt()의 Nth()
      • R sqldf Package : LIMIT 구문, row_number() 윈도우 함수
      • Python pandasql Package : LIMIT 구문, row_number() 윈도우 함수
      • R data.table Package : order[], [] 인덱싱(Indexing)
      • SAS Proc SQL : Order by, MONOTONIC(), WHERE= 데이터 세트 옵션, count(*)
      • SAS Data Step : proc rank, IF 조건문, N 현재 작업 관측치 번호, FIRSTOBS= 와 OBS= 데이터 세트 옵션
      • Python Dfply Package : arrange(), row_slice(), list(), Range(), make_symbolic(), lambda 함수, rank(), summarize()의 nth(), reset_index와 .index, [] 인덱싱(Indexing)
      • 파이썬 Base 프로그래밍 :

     


     

    • 직원명의 절반을 대문자로 표시하고, 나머지 부분을 소문자로 출력하시오.
    • [문자 함수] 다양한 문자 함수 - 문자길이 체크, 문자열 자르기 및 추출, 대문자와 소문자 변환, 문자 결합, 신규변수 생성
      • Oracle : length(), substr(), upper(), lower(), concat(), 문자 결합 연산자(‘||’)
      • 파이썬 Pandas : len(), str(), upper(), lower(), 문자 결합 연산자(‘+’), str(), apply(), lambda 함수, int(), assign()
      • R 프로그래밍 : str_length(), base::substr(), toupper(), tolower(), paste0(), transform()
      • R Dplyr Package : nchar(), stringr::str_sub(), toupper(), tolower(), stringi::stri_join(), dplyr::mutate(), nchar()
      • R sqldf Package : length(), substr(), upper(), lower(), 문자 결합 연산자(‘||’)
      • Python pandasql Package : length(), substr(), upper(), lower(), 문자 결합 연산자(‘||’)
      • R data.table Package : nchar(), stringr::str_sub(), toupper(), tolower(), stringi::stri_join(), nchar()
      • SAS Proc SQL : length(), substr(), upper() / UPCASE(), lower() / LOWCASE(), concat(), cats(), STRIP(), 문자 결합 연산자(‘||’), int(), CALCULATED
      • SAS Data Step : length(), substr(), upper() / UPCASE(), lower() / LOWCASE(), concat(), cats(), STRIP(), 문자 결합 연산자(‘||’), int()
      • Python Dfply Package : len(), [] 인덱싱(Indexing), upper(), lower(), 문자 결합 연산자(‘+’), apply(), lambda 함수, str()
      • 파이썬 Base 프로그래밍 :

     


     

    • 급여 순위 10번째(10등) 직원의 사원 정보를 삭제하시오.
    • [데이터 삭제] 특정 조건을 만족하는 데이터 삭제 - 데이터 순위 측정
      • Oracle : DELETE 구문, ROW_NUMBER() 윈도우 함수, create table 구문
      • 파이썬 Pandas : NOT(‘~’) 연산자, isin(), sort_values(), .iloc[] 인덱싱(Indexing)
      • R 프로그래밍 : NOT(‘!’) 연산자, %in%, [] 인덱싱(Indexing), anti_join()
      • R Dplyr Package : dplyr::setdiff(), dplyr::arrange(), dplyr::slice()
      • R sqldf Package : DELETE 구문, ROW_NUMBER() 윈도우 함수, create table 구문
      • Python pandasql Package : ROW_NUMBER() 윈도우 함수
      • R data.table Package : Order(), NOT(‘!’) 연산자, [] 인덱싱
      • SAS Proc SQL : DELETE 구문 - 논리적 삭제, monotonic(), create table 구문, WHERE= 데이터 세트 옵션, LEFT JOIN, count()
      • SAS Data Step : proc rank, Proc sort와 N, IF 조건문, DELETE 구문, FIRSTOBS= 와 OBS= 데이터 세트 옵션
      • Python Dfply Package : make_symbolic(), lambda 함수, rank()
      • 파이썬 Base 프로그래밍 :

     


     

    • 직원정보(EMP) 테이블을 신규로 생성하시오.
    • [데이터 생성] 신규 테이블 생성
      • Oracle : Create table
      • 파이썬 Pandas : copy.copy()
      • R 프로그래밍 : 할당(‘<-‘) 연산자
      • R Dplyr Package : 할당(‘<-‘) 연산자
      • R sqldf Package : 할당(‘<-‘) 연산자
      • Python pandasql Package : 할당(‘=’) 연산자
      • R data.table Package : 할당(‘<-‘) 연산자
      • SAS Proc SQL : Create table
      • SAS Data Step : SET 구문
      • Python Dfply Package : 할당(‘=’) 연산자
      • 파이썬 Base 프로그래밍 :

     


     

    185. Select ename if ename exists more than once.

    • 동일한 직무(‘job’) 이름이 2개 이상 존재하는 경우 출력하시오. ( 직무별 근무하는 직원이 2명 이상인 경우)
    • 유사문제 : 109, 176, 185
    • [데이터 추출] 그룹 집계 후 특정 조건을 만족하는 그룹의 집계 통계량 출력 - having count(*)
      • Oracle : having count(*)
      • 파이썬 Pandas : groupby(), count(), query()
      • R 프로그래밍 : subset(), aggregate(), function(x) 사용자 정의 함수, length(), plyr::ddply(), summarize, dplyr::filter()
      • R Dplyr Package : dplyr::group_by(), dplyr::summarize()의 n(), dplyr::filter()
      • R sqldf Package : having count(*)
      • Python pandasql Package : having count(*)
      • R data.table Package : .SD(Subset of Dataframe), .N , keyby=
      • SAS Proc SQL : group by, having count(*)
      • SAS Data Step : PROC SUMMARY의 N=, where 데이터 세트 옵션, SET 구문, first. 과 LAST., IF 조건문
      • Python Dfply Package : summarize()의 n(), filter_by()
      • 파이썬 Base 프로그래밍 :

     


     

    • 사원이름을 역순(내림차순)으로 출력하시오.
    • [데이터 정렬] 수치형 데이터를 내림차순으로 정렬 - Descending
      • Oracle : Order by의 내림차순(Desc)
      • 파이썬 Pandas : sort_values()의 ascending=
      • R 프로그래밍 : arrange()의 desc()
      • R Dplyr Package : dplyr::arrange()의 Desc()
      • R sqldf Package : Order by의 내림차순(Desc)
      • Python pandasql Package : Order by의 내림차순(Desc)
      • R data.table Package : order()의 내림차수 연산자(‘-‘)
      • SAS Proc SQL : Order by의 내림차순(Desc)
      • SAS Data Step : proc sort의 descending
      • Python Dfply Package : arrange()의 desc()
      • 파이썬 Base 프로그래밍 :

     


     

    187. Display those employee whose joining of month and grade is equal.

    • 입사월과 급여 등급이 동일한 사원을 출력하시오.
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리, 비등가 조인, 코드 테이블 결합, 날짜 데이터에서 월 추출
      • Oracle : between 연산자, TO_CHAR(), 비상관 서브쿼리
      • 파이썬 Pandas : pd.merge()의 Cross Join(카테시안곱), query(), str.slice(), astype(“int”)
      • R 프로그래밍 : subset(), Merge()의 Cross Join(카테시안곱), between(), as.numeric(), base::substr()
      • R Dplyr Package : dplyr::full_join()의 Cross Join(카테시안곱), between(), as.numeric(), stringr::str_sub(), dplyr::left_join ()의 Cross Join(카테시안곱)
      • R sqldf Package : 비등가 조인, between 연산자, cast(), 비상관 서브쿼리
      • Python pandasql Package : 비등가 조인, between 연산자, cast(), 비상관 서브쿼리
      • R data.table Package : as.numeric(), stringr::str_sub()
      • SAS Proc SQL : 비등가 조인, between 연산자, TO_CHAR(), 비상관 서브쿼리, month()
      • SAS Data Step : CROSS JOIN (카테시안 곱) 구현, month(), IF 조건문
      • Python Dfply Package : full_join()의 Cross Join(카테시안곱), left_join()의 Cross Join(카테시안곱), between(), str.slice(), astype(“int”)
      • 파이썬 Base 프로그래밍 :

     


     

    • 입사일과 부서 번호가 동일한 사원을 출력하시오.
    • [날짜 데이터 처리] 날짜 형식 변환 - 일자 형식 출력
      • Oracle : TO_CHAR()의 ‘dd’
      • 파이썬 Pandas : query(), str.slice(), astype(“int”)
      • R 프로그래밍 : subset(), as.numeric(), base::substr()
      • R Dplyr Package : as.numeric(), stringr::str_sub()
      • R sqldf Package : cast(), substr(), datetime()
      • Python pandasql Package : cast(), substr(), datetime()
      • R data.table Package : as.numeric(), stringr::str_sub()
      • SAS Proc SQL : day()
      • SAS Data Step : day()
      • Python Dfply Package : filter_by(), str.slice(), astype(“int”)
      • 파이썬 Base 프로그래밍 :

     


     

    • A ALLEN, B BLAKE 처럼 이름 앞에 1글자를 별도로 추출하여 이름과 함께 출력하시오.
    • [문자 함수] 다양한 문자 함수 - 문자열 자르기 및 추출, 문자 결합, 신규변수 생성
      • Oracle : substr(), Concat(), 문자 결합 연산자(‘||’)
      • 파이썬 Pandas : str.slice(), 문자 결합 연산자(‘+’), assign() 신규변수 할당
      • R 프로그래밍 : base::substr(), paste(), transform()
      • R Dplyr Package : stringr::str_sub(), stringi::stri_join(), dplyr::mutate()
      • R sqldf Package : substr(), 문자 결합 연산자(‘||’)
      • Python pandasql Package : substr(), 문자 결합 연산자(‘||’)
      • R data.table Package : stringr::str_sub(), stringi::stri_join()
      • SAS Proc SQL : substr(), 문자 결합 연산자(‘||’), cat 함수, cats 함수
      • SAS Data Step : substr(), 문자 결합 연산자(‘||’), cat 함수, cats 함수
      • Python Dfply Package : str.slice(), 문자 결합 연산자(‘+’), mutate()
      • 파이썬 Base 프로그래밍 :

     


     

    • 사원명, 급여, PF(급여의 15%) 값을 출력하시오
    • [변수 생성] 신규 변수 생성 - 곱셈과 나눗셈
      • Oracle : 곱셈(‘*’), 나눗셈(‘/‘)
      • 파이썬 Pandas : 곱셈(‘*’), 나눗셈(‘/‘), assign()
      • R 프로그래밍 : 곱셈(‘*’), 나눗셈(‘/‘), transform()
      • R Dplyr Package : 곱셈(‘*’), 나눗셈(‘/‘), dplyr::mutate()
      • R sqldf Package : 곱셈(‘*’), 나눗셈(‘/‘)
      • Python pandasql Package : 곱셈(‘*’), 나눗셈(‘/‘)
      • R data.table Package : 곱셈(‘*’), 나눗셈(‘/‘)
      • SAS Proc SQL : 곱셈(‘*’), 나눗셈(‘/‘)
      • SAS Data Step : 곱셈(‘*’), 나눗셈(‘/‘), KEEP 구문
      • Python Dfply Package : 곱셈(‘*’), 나눗셈(‘/‘)
      • 파이썬 Base 프로그래밍 :

     


     

    • 관측치 없이 empno 칼럼만 존재하는 테이블을 생성하시오.
    • [테이블 생성] 관측치가 없는 공백 테이블 생성
      • Oracle : Create table의 데이터 형식 - number
      • 파이썬 Pandas : numpy.empty() 과 numpy.dtype(), pd.DataFrame()의 데이터 형식 - str, int, float, numpy.datetime64
      • R 프로그래밍 : data.frame() 의 데이터 형식 - double(), integer(), factor(), logical(), character(), numeric()
      • R Dplyr Package : tibble() 의 데이터 형식 - numeric(), character(), as.POSIXct(NA), str(), class()
      • R sqldf Package : Create table의 데이터 형식 - number, str(), class(), attr()
      • Python pandasql Package : Create table의 데이터 형식 - char(), cast(), LIMIT
      • R data.table Package : data.table()의 데이터 형식 - character(), as.POSIXct(NA)
      • SAS Proc SQL : Create table의 데이터 형식 - num
      • SAS Data Step : stop 구문
      • Python Dfply Package : False
      • 파이썬 Base 프로그래밍 :

     


     

    • emp 테이블에 varchar(20) 의 신규 변수 ename_1을 추가하시오.
    • [변수 추가] 공백 변수 추가
      • Oracle : Create table, desc, alter table의 Add
      • 파이썬 Pandas : assign(), np.nan
      • R 프로그래밍 : transform()
      • R Dplyr Package : dplyr::mutate(), add_column(), NA
      • R sqldf Package : Create table, desc, alter table의 Add
      • Python pandasql Package : ‘ ‘
      • R data.table Package : “”, character(), character(.N), c(), list()
      • SAS Proc SQL : Create table, desc, alter table의 Add
      • SAS Data Step : length 구문, ‘ ‘
      • Python Dfply Package : np.nan, mutate()
      • 파이썬 Base 프로그래밍 :

     


     

    • emp 테이블에 신규 변수 salary 칼럼을 추가하시오.
    • [변수 추가] Zero(0)값으로 구성된 신규 변수 추가
      • Oracle : Create table, alter table의 add - number()
      • 파이썬 Pandas : assign()
      • R 프로그래밍 : transform()
      • R Dplyr Package : dplyr::mutate(), add_column()
      • R sqldf Package : Create table, alter table의 add - number()
      • Python pandasql Package :
      • R data.table Package : 변수 생성 할당자(‘:=’)
      • SAS Proc SQL : Create table, alter table의 add - number(), update 구문
      • SAS Data Step : SET 구문, 할당 연산자(‘=’)
      • Python Dfply Package : mutate()
      • 파이썬 Base 프로그래밍 :

     


     

    • 신규 테이블 newemp을 생성하시오. 단일 명령어를 사용하여서 emp 테이블의 데이터와 변수 구조를 모두 동일하게 생성(복사)하시오.
    • [테이블 생성] 데이터와 변수 구조가 동일한 테이블 생성 - 테이블 구조 확인
      • Oracle : create table, desc 테이블명
      • 파이썬 Pandas : copy.copy(), head()
      • R 프로그래밍 : 테이블 할당 연산자(‘<-‘), head(), tail()
      • R Dplyr Package : 테이블 할당 연산자(‘<-‘), head(), tail()
      • R sqldf Package : 테이블 할당 연산자(‘<-‘), head(), tail()
      • Python pandasql Package : 테이블 할당 연산자(‘=’), head(), tail()
      • R data.table Package : 테이블 할당 연산자(‘<-‘), head(), tail(), class()
      • SAS Proc SQL : create table, Proc print
      • SAS Data Step : SET 구문, Proc print
      • Python Dfply Package : 테이블 할당 연산자(‘=’), head(), tail()
      • 파이썬 Base 프로그래밍 :

     


     

    205. Create table called as newemp. This table should contain only empno,ename, dname

    • empno,ename,dname 칼럼으로 구성된 신규 테이블 newemp 테이블을 생성하시오.
    • [테이블 생성] 특정 변수로 구성된 테이블 생성 - 테이블 결합 및 테이블 구조 확인
      • Oracle : create table, 내부 조인, Desc
      • 파이썬 Pandas : pd.merge(), sort_values(), head(), []
      • R 프로그래밍 : merge(), head(), c()
      • R Dplyr Package : dplyr::inner_join(), dplyr::select(), dplyr::arrange()
      • R sqldf Package : create table, 테이블 할당 연산자(‘<-‘), 내부 조인, head()
      • Python pandasql Package : 테이블 할당 연산자(‘=’), 내부 조인, head()
      • R data.table Package : 테이블 할당 연산자(‘<-‘), Merge 방식의 테이블 결합, head(), order(), Rank(), .()
      • SAS Proc SQL : create table, 내부 조인, Proc Print
      • SAS Data Step : merge 구문, IF 조건문, KEEP 구문, Proc Print
      • Python Dfply Package : inner_join(), select(), arrange(), head()
      • 파이썬 Base 프로그래밍 :

     


     

    • 2년 이상 근무한 직원의 정보를 삭제하시오.
    • [데이터 삭제] 특정 조건을 만족하는 데이터 삭제 - 날짜 기간 계산
      • Oracle : Delete 구문, Create table 구문, floor(), sysdate
      • 파이썬 Pandas : NOT(‘~’) 연산자, pd.Timestamp.now(), pd.to_datetime(), dt.days
      • R 프로그래밍 : NOT(‘!’) 연산자, Sys.Date()
      • R Dplyr Package : filter(), NOT(‘!’) 연산자, Sys.Date()
      • R sqldf Package : Delete 구문, Create table 구문, floor(), ‘now’, julianday(), datetime()
      • Python pandasql Package : floor(), ‘now’, julianday(), substr()
      • R data.table Package : NOT(‘!’) 연산자, Sys.Date()
      • SAS Proc SQL : Delete 구문 - 논리적 삭제, Create table 구문, YRDIF 함수, TODAY()
      • SAS Data Step : YRDIF 함수, TODAY(), IF 조건문
      • Python Dfply Package : filter_by(), NOT(‘~’) 연산자, pd.Timestamp.now(), pd.to_datetime(), dt.days, make_symbolic()
      • 파이썬 Base 프로그래밍 :

     


     

    • 수수료가 제공되지 않는 직원에게 수수료 300을 부여하시오.
    • [데이터 갱신] 특정 데이터 업데이트 - Update
      • Oracle : UPDATE 구문, IS NULL, CASE WHEN 조건문
      • 파이썬 Pandas : np.where(), isna(), .loc[], apply(), lambda 함수, IF 조건문, np.isnan()
      • R 프로그래밍 : ifelse(), is.na(), transform(),
      • R Dplyr Package : ifelse(), is.na(), case_when()
      • R sqldf Package : UPDATE 구문, IS NULL, CASE WHEN 조건문
      • Python pandasql Package : IS NULL, CASE WHEN 조건문
      • R data.table Package : is.na(), 변수 할당 연산자(‘:=’)
      • SAS Proc SQL : UPDATE 구문, IS NULL, CASE WHEN 조건문, COALESCE 함수, IFN 함수
      • SAS Data Step : IF 조건문, select 조건문, COALESCE 함수, IFN 함수
      • Python Dfply Package : apply(), lambda 함수, IF 조건문, math.isnan(), make_symbolic(), if_else(), isnull(), make_symbolic(), np.where(), case_when(), IF 조건문
      • 파이썬 Base 프로그래밍 :

     


     

    • 기존에 수수료가 부여된 직원에게 급여의 10%로 수수료를 변경하시오.
    • [데이터 갱신] 특정 데이터 업데이트 - 수식 반환 값으로 갱신(Update)
      • Oracle : UPDATE 구문, IS NOT NULL, CASE WHEN 조건문
      • 파이썬 Pandas : np.where(), notnull(), .loc[], apply(), lambda 함수, IF 조건문, np.isnan(), NOT(‘~’) 연산자
      • R 프로그래밍 : ifelse(), is.na(), transform(), NOT(‘!’) 연산자
      • R Dplyr Package : ifelse(), is.na(), case_when(), NOT(‘!’) 연산자
      • R sqldf Package : UPDATE 구문, IS NOT NULL, CASE WHEN 조건문
      • Python pandasql Package : IS NOT NULL, CASE WHEN 조건문
      • R data.table Package : is.na(), 변수 할당 연산자(‘:=’), NOT(‘!’) 연산자
      • SAS Proc SQL : UPDATE 구문, IS NOT NULL, CASE WHEN 조건문, IFN 함수
      • SAS Data Step : IF 조건문, select 조건문, IFN 함수
      • Python Dfply Package : if_else(), notnull(), apply(), lambda 함수, IF 조건문, isnan()
      • 파이썬 Base 프로그래밍 :

     


     

    • 근무하고 있는 부서의 위치와 해당 부서의 사원번호와 직원 이름을 출력하시오.
    • 유사문제 : 91, 94, 95, 174, 210번
    • [데이터 추출] 내부 조인(Inner Join)을 만족하는 데이터 추출
      • Oracle : 내부 조인
      • 파이썬 Pandas : pd.merge()의 ‘inner’
      • R 프로그래밍 : base::merge()의 all=F
      • R Dplyr Package : dplyr::inner_join()
      • R sqldf Package : 내부 조인
      • Python pandasql Package : 내부 조인
      • R data.table Package : DT Syntax 방식의 데이터 결합, setkey() - 테이블 Key 설정, merge 방식의 데이터 결합 - 내부 조인
      • SAS Proc SQL : 내부 조인
      • SAS Data Step : Merge 구문, IF조건문
      • Python Dfply Package : inner_join()
      • 파이썬 Base 프로그래밍 :

     


     

    211. Display ename, dname even if there no employees working in a particular department(use outer join).

    • 사원정보와 근무하고 있는 부서명을 함께 출력하시오. 소속 부서가 없는 경우에도 함께 출력.(Outer Join)
    • [데이터 추출] 특정 조건을 만족하는 데이터 추출 - 비상관 서브쿼리(In), 중복 제거(Distinct)
      • Oracle :
      • 파이썬 Pandas :
      • R 프로그래밍 :
      • R Dplyr Package :
      • R sqldf Package :
      • Python pandasql Package :
      • R data.table Package :
      • SAS Proc SQL :
      • SAS Data Step :
      • Python Dfply Package :
      • 파이썬 Base 프로그래밍 :

     


     

    • 직원 이름과 담당 관리자의 이름을 출력하시오.
    • [데이터 추출] 외부 조인(Outer Join)을 만족하는 데이터 추출 - Left Join
      • Oracle : 외부 조인 - Left join, Left Join 연산자(‘+’)
      • 파이썬 Pandas : pd.merge()의 how=’left’
      • R 프로그래밍 : base::merge()의 all.x=TRUE
      • R Dplyr Package : dplyr::left_join()
      • R sqldf Package : 외부 조인 - Left join
      • Python pandasql Package : 외부 조인 - Left join
      • R data.table Package : DT Syntax 방식의 테이블 결합(기준 테이블(왼쪽 테이블)이 대괄호 안쪽에 위치), merge 방식의 테이블 결합 - all.x=T
      • SAS Proc SQL : 외부 조인 - Left join
      • SAS Data Step : MERGE 구문, IF 조건문
      • Python Dfply Package : left_join()
      • 파이썬 Base 프로그래밍 :

     


     

    • 개별 부서에 근무하는 직원의 총 급여를 집계하여서 출력하시요.
    • [집계 함수] 그룹별 합계 계산 - SUM()
      • Oracle : Group By, SUM()
      • 파이썬 Pandas : groupby(), SUM(), agg()의 ‘sum’ 인수
      • R 프로그래밍 : by=, aggregate()의 sum, list(), cbind()
      • R Dplyr Package : group_by(), dplyr::summarise()의 sum()
      • R sqldf Package : Group By, SUM()
      • Python pandasql Package : Group By, SUM()
      • R data.table Package : by=, sum(), list()
      • SAS Proc SQL : Group By, SUM()
      • SAS Data Step : PROC summary의 SUM=, FIRST. 와 LAST.
      • Python Dfply Package : group_by(), summarize()의 sum()
      • 파이썬 Base 프로그래밍 :

     


     

    • 개별 부서에 근무하는 직원의 총 인원수를 출력하시요.
    • [집계 함수] 그룹별 건수 카운팅 - COUNT(*)
      • Oracle : Group By, COUNT(*)
      • 파이썬 Pandas : groupby(), describe()의 [‘count’, ‘mean’], size(), agg()의 [‘count’], agg()의 pd.Series.nunique와 ‘count’, value_counts(), rp.summary_cont()
      • R 프로그래밍 : by=, aggregate()의 length, list(), cbind(), table(), tapply()
      • R Dplyr Package : group_by(), dplyr::summarise()의 n(), tally()
      • R sqldf Package : Group By, COUNT(*)
      • Python pandasql Package : Group By, COUNT(*)
      • R data.table Package : by=, .N, list()
      • SAS Proc SQL : Group By, COUNT(*)
      • SAS Data Step : PROC summary의 N=, FIRST. 와 LAST.
      • Python Dfply Package : group_by(), summarize()의 n()
      • 파이썬 Base 프로그래밍 :

     


     

    • 현재 날짜와 시간을 출력하시오.
    • 현재 날짜 처리 : 13번, 14번, 216번
    • [날짜 데이터 처리] 현재 날짜를 출력하기 위한 다양한 방법 구현 - 날짜 출력 형식(포맷, Format), 날짜 형식 변경
      • Oracle : To_char()의 ‘month mon dd yy yyyy hh:mi:ss’와 ‘yyyymmdd’ 날짜 포맷
      • 파이썬 Pandas : datetime.now(), datetime.today(), strftime(), localtime(), time(), gmtime()), assign(), pd.to_datetime(), .dt.strftime(), apply(), lambda 함수, info(), type(), .dtype, is_string_dtype()
      • R 프로그래밍 : Sys.Date(), Sys.time(), Sys.timezone(), lubridate::today(), format 출력 형식, as.POSIXlt(), base::transform(), sum(), max(), ave(), as.character(), as.Date(), class()
      • R Dplyr Package : as.character(), as.Date()
      • R sqldf Package : strftime(), datetime(‘now’), datetime(‘now’,’localtime’), TIME(‘now’), TIME(‘now’,’localtime’)
      • Python pandasql Package : datetime(‘now’), datetime(‘now’,’localtime’), TIME(‘now’), TIME(‘now’,’localtime’), date(), substr()
      • R data.table Package : as.character(), as.Date(), format =
      • SAS Proc SQL : put(), input(), calculated
      • SAS Data Step : put(), input(), calculated
      • Python Dfply Package : make_symbolic(), pd.to_datetime, strftime(), apply(), lambda 함수
      • 파이썬 Base 프로그래밍 :

    반응형

    댓글