SQL 기초 실무/빅데이터 문제 풀기

23.10.04. SQL Developer 빅데이터 분석하기 ④

잇꼬 2023. 10. 4. 09:42
728x90
반응형
SMALL

4. 절도가 가장 많이 발생하는 요일을 SQL로 출력하기 

-- 예제128. 절도가 가장 많이 발생하는 요일은 언제인가요?
DROP TABLE CRIME_DAY;

CREATE TABLE CRIME_DAY
( CRIME_TYPE  VARCHAR2(50),
  SUN_CNT    NUMBER(10),
  MON_CNT   NUMBER(10),
  TUE_CNT    NUMBER(10),
  WED_CNT   NUMBER(10),
  THU_CNT    NUMBER(10),
  FRI_CNT     NUMBER(10),
  SAT_CNT    NUMBER(10),
  UNKNOWN_CNT  NUMBER(10) );

select * from crime_day ;

drop table crime_day_unpivot ;

create table crime_day_unpivot 
    as
    select * 
        from crime_day
        unpivot ( cnt for day_cnt in (sun_cnt, mon_cnt, tue_cnt, wed_cnt, thu_cnt, fri_cnt, sat_cnt, unknown_cnt) ) ; 
        
select * from crime_day_unpivot ;

select * 
    from (
                select day_cnt, cnt, rank() over ( order by cnt desc) rnk -- 순위 출력
                    from crime_day_unpivot
                    where trim(crime_type) = '절도' 
                )
where rnk = 1 ;

-- 문제1. 방화사건이 가장 많이 발생하는 요일은 언제인가요?
select * 
    from (
                select day_cnt, cnt, rank() over ( order by cnt desc) rnk -- 순위 출력
                    from crime_day_unpivot
                    where trim(crime_type) = '방화' 
                )
where rnk = 1 ;

-- 문제2. 살인이 가장 많이 발생하는 요일은 언제인가요?
select * 
    from (
                select day_cnt, cnt, rank() over ( order by cnt desc) rnk -- 순위 출력
                    from crime_day_unpivot
                    where trim(crime_type) = '살인' 
                )
where rnk = 1 ;

 

2009년 범죄발생 요일 현황.csv
0.00MB

 

 

728x90
반응형
LIST