[ 외부 데이터(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 |