본문 바로가기

Today I Learned

231204 / 데이터 분석 1주차 및 예제 풀이

이번주에는 '직장인을 위한 실전 데이터분석' 강의를 수강한다.

첫 주차에선 데이터 분석이 필요한 이유와 타이타닉 예제를 통한 데이터 분석 기초를 살펴보았다.

강의를 듣고 남은 시간엔 SQL 예제 풀이를 하였다.

 

- 데이터 분석의 기본 구조

 

   1. 문제 정의 및 가설 설정하기

   2. 데이터 분석 기본 세팅 하기

   3. 데이터 분석하기

   4. 분석 결과 시각화 하기

   5. 최종 결론 내리기

 

1주차 숙제

- 피마 인디언 당뇨병 데이터 세트를 이용해 당뇨병 발생에 가장 많이 영향을 미치는 요소를 찾아보자.

 

먼저 데이터 셋을 불러와 데이터 전처리를 해주고 분석 툴을 사용해 데이터를 분석한다.

분석된 결과를 그래프로 시각화해 준 뒤 필요한 정보만 남기고 정리한다.

정리된 그래프 결과를 보면 'Glucose'의 값이 가장 큰 것을 확인할 수 있다.

따라서 당뇨병 발병에 가장 큰 영향을 미치는 요소는 'Glucose' 글루코스 수치이다.

 

SQL 예제 풀이

 

- 동물 보호소에 들어온 동물 중, 이름이 있는 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다.

 

이름이 있는 동물의 ID를 조회해야 하기 때문에 조건문 where NAME is not null 을 통해 필터링 해주었다.

select ANIMAL_ID
from ANIMAL_INS
where NAME is not null
order by ANIMAL_ID

 

 

- 동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL 문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요.

 

order by ANIMAL_ID desc 를 입력하여 결과를 ANIMAL_ID의 역순으로 출력해주었다.

select NAME, DATETIME
from ANIMAL_INS
order by ANIMAL_ID desc

 

 

- 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성해주세요. 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 칩니다.

 

count(distinct NAME) 를 통해 중복된 이름을 제거했는데 이 과정에서 이름이 NULL인 경우도 제거가 되기 때문에

where NAME is not null 은 입력하지 않아도 무방하다.

select count(distinct NAME) COUNT
from ANIMAL_INS
where NAME is not null

 

 

- 동물 보호소에 들어온 모든 동물의 아이디와 이름을 ANIMAL_ID 순으로 조회하는 SQL 문을 작성해주세요.

select ANIMAL_ID, NAME
from ANIMAL_INS
order by ANIMAL_ID

 

 

- 동물 보호소에 동물이 몇 마리 들어왔는지 조회하는 SQL 문을 작성해주세요.

select count(ANIMAL_ID) COUNT
from ANIMAL_INS

 

 

- 동물 보호소에 들어온 동물 중 아픈 동물의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.

 

문제에서 말하는 아픈 동물이란 INTAKE_CONDITION 이 Sick 인 상태를 말하는 것이므로 조건절을 통해 필터링 해준다.

select ANIMAL_ID, NAME
from ANIMAL_INS
where INTAKE_CONDITION='Sick'
order by ANIMAL_ID

'Today I Learned' 카테고리의 다른 글