본문 바로가기

SQL

13. 외부 데이터 적재

[ 외부 데이터(csv,txt 등) 적재 ]

방법)
1. oracle sqlldr 툴(명령어) 사용
2. orange 개발툴 사용

절차)
step1) table 생성

create table movie(
년         number,
월         number,
일         number,
지역시도    varchar2(20),
지역시군구   varchar2(20),
지역읍면동   varchar2(20),
성별       varchar2(20),
연령대      varchar2(20),
이용비율    number
);

select* from movie;

step2) orange 적재

Tools > Load Tool > Log on (테이블 소유자로 접속)
      > target 탭의 table 입력(적재하고자 하는 테이블명 입력)
      > Data File 탭에서 적재할 파일 선택
      > 나머지 옵션 선택
        (* 1st row is column name : 첫번째 행 스킵하고 두번째행부터 적재하는 옵션
         * truncate before loading : 적재 전 테이블 데이터를 전체 삭제하는 옵션)
      > Run(F5)
    
[ 연습문제 ]
movie 테이블 데이터를 사용하여 
1. 성별 이용비율 출력

select 성별, sum(이용비율) 이용비율
  from movie
 group by 성별;


2. 연령대별 이용비율 출력(단, 60대 이상은 출력하지 말것)

select 연령대, sum(이용비율) 이용비율
  from movie
 where 연령대 not in ('60대이상')
 group by 연령대;



3. 지역시도별 이용비율 출력(단, 이용비율이 10% 넘는 지역만 출력)


select 지역시도, sum(이용비율) 이용비율
  from movie
 group by 지역시도
 having sum(이용비율)>10;





4. 요일별 이용비율 출력
     결합 -> 날짜파싱 -> 요일출력(날짜포맷변경)
 
select distinct 일 from movie;

 

자료가 너무 많아서 필요한 부분 확인한다.


select *
  from movie;

 풀이)

select to_date(년||월||일,'YYYYMMDD')        -- 에러
  from movie;


step1) 파싱 가능한 날짜 형태로 결합
step2) 날짜 파싱
step3) 요일 출력 및 요일별 연산

sol1) 날짜구분기호 삽입
select to_date(년||'/'||월||'/'||일,'YYYY/MM/DD')     
  from movie;
  
sol2) 월, 일 날짜를 모두 두자로 변경
alter session set nls_date_language='korean';

select to_char(to_date(년||lpad(월,2,0)||lpad(일,2,0),'YYYYMMDD'),'Day') 요일별, sum(이용비율) 이용비율
  from movie
 group by to_char(to_date(년||lpad(월,2,0)||lpad(일,2,0),'YYYYMMDD'),'Day')
 order by 요일별;

 

 

'SQL' 카테고리의 다른 글

15. 조인(1)( cross join, inner join)  (0) 2024.10.21
14. 집합 연산자  (0) 2024.10.21
12. 그룹함수(집계함수)  (1) 2024.10.18
11.변환함수(2)  (1) 2024.10.18
10. 변환함수(1)  (0) 2024.10.18