SQL 16

Tableau Desktop: 대시보드 수정 및 고찰 (Before, After 비교)

지난번에 제작한 대시보드에 대한 피드백을 얻고자 데이터 분석 커뮤니티에 포스트를 공유하였다.(예상 외로) 많은 분들이 피드백을 해주셔서 이를 바탕으로 대시보드를 수정하고 전/후 비교를 통해 공부해보고자 한다. 이번 포스트에서는,피드백을 바탕으로 대시보드 수정하기수정 후 나아진 점 생각해보기 (왜 이렇게 수정해야 했을까?)변경된 대시보드를 보고 함의점 생각해보기 1. Before지난번에 제작한 대시보드 '서울 내 범죄 발생 현황' 은 다음과 같다.해당 대시보드에 대하여 몇 가지 피드백을 받은 후 전체적으로 문제가 있다고 생각이 되어 수정을 하고자 한다. 2. Feedback받은 피드백들을 바탕으로 해결한 것과 해결하지 못한 것에 대해 서술해보고자 한다.1) 유형별 발생건수 정렬가나다순으로 되어 있는 바 차..

Skills/Tableau 2024.05.03

신한카드 데이터 분석 1: DB 및 테이블 생성 with DataGrip

이번 포스트에서는, 사용할 데이터 파악 DB 생성 테이블 생성 (두 가지 방식) 1. 사용할 데이터 분석에 사용될 데이터들의 일부는 아래와 같으며, 모든 테이블은 500개의 row로 구성되어 있다. 이 데이터들을 전처리하기 위해 DataGrip으로 불러와 주는 단계가 필요하다. 1) 내국인 일자별 시간대별 ⏱️ 2) 내국인 성별 연령대별 👫 3) 내국인 집계구 유입지별 🌏 4) 내국인 업종 코드 🏷️ 5) 외국인 일자별 시간대별 ⏱️ 6) 외국인 집계구 국가별 🌏 7) 외국인 업종 코드 🏷️ 2. DB 생성하기 테이블을 불러오기 전에 DB를 생성할 필요가 있다. SHOW DATABASES; 코드를 실행해 주면 아래와 같이 DB 리스트가 출력된다. DB를 새로 만들고 싶다면 👉🏻 CREATE DATABAS..

Toy Projects 2024.03.19

신한카드 데이터 분석 0: 준비 단계

프로젝트를 시작하기 전, 지금까지 Python, SQL을 배워보았으니 이 기술들을 활용하여 데이터를 분석하는 경험이 필요하다고 생각 데이터 분석을 통해 몰랐던 부분을 알게 되거나, 이미 예상하고 있었던 경향을 확인함으로써 또 다른 공부를 하기 위해 시작 내가 생각하는 데이터 분석 과정 데이터 수집 데이터 전처리 데이터 분석 분석 결과 도출 데이터 시각화 문제 해결 및 함의점 제공 내가 사용하고자 하는 분석 스킬과 툴 💻 데이터 전처리 및 분석 - MySQL, Python 📊 데이터 시각화 - Tableau 분석 툴은 DateGrip과 Pycharm 사용할 예정 프로젝트 주제 평소 상품 구매 데이터 예제를 가지고 공부했기에 '사람들의 실제 소비 내역을 볼 수 있는' 데이터를 분석하고 싶다는 생각을 했다. ..

Toy Projects 2024.03.15

프로그래머스: 연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기 - 시도 및 해결 과정 (MySQL)

1. 문제 2. 문제 풀기 전에, HR_DEPARTMENT 👉🏻 X HR_EMPLOYEES 👉🏻 사번, 사원명, 보너스 조회 HR_GRADE 👉🏻 평가 등급 조회 평가 점수별 등급과 성과금 정보에 따른 값 계산하기 사번 ASC 3. 테이블 HR_DEPARTMENT AS DEPT HR_EMPLOYEES AS EMP HR_GRADE AS GR 4. 나의 시도 시도 1) 테이블 DEPT은 조회할 컬럼이 없으니 제외하고, 테이블 EMP와 테이블 GR은 ‘사번’이라는 동일한 컬럼을 가지고 있으니 INNER JOIN을 해준다. SELECT FROM HR_EMPLOYEES AS EMP INNER JOIN HR_GRADE AS GR ON EMP.EMP_NO = GR.EMP_NO 시도 2) 아래는 ‘평가 점수별 등급과 ..

Skills/SQL 2024.03.13

프로그래머스: 부서별 평균 연봉 조회하기 (MySQL)

1. 문제 2. 문제 풀기 전에, HR_DEPARTMENT 👉🏻 부서 ID, 영문 부서명 조회 HR_EMPLOYEES 👉🏻 평균 연봉 조회 평균 연봉은 소수점 첫째 자리에서 반올림하기 부서별 평균 연봉 DESC 3. 테이블 HR_DEPARTMENT AS DEPT HR_EMPLOYEES AS EMP 4. 풀이 과정 1단계) 두 테이블을 연결하여 부서별 평균 연봉을 알아보아야 하니 부서 ID를 기준으로 INNER JOIN을 적용해 줍니다. SELECT FROM HR_DEPARTMENT AS DEPT INNER JOIN HR_EMPLOYEES AS EMP ON DEPT.DEPT_ID = EMP.DEPT_ID 2단계) 부서 ID, 영문 부서명, 평균 연봉을 조회하는 SELECT문을 작성해 준다. AVG() 함수..

Skills/SQL 2024.03.13

프로그래머스: 업그레이드 할 수 없는 아이템 구하기 (MySQL)

1. 문제 2. 문제 풀기 전 생각해 볼 것 ITEM_INFO 👉🏻 아이템 ID, 아이템 명, 희귀도 조회 ITEM_TREE 👉🏻 (서브 쿼리를 이용할 때) PARENT 아이템 ID 조회 더 이상 업그레이드 할 수 없는 아이템이어야 함 아이템 ID DESC 3. 테이블 ITEM_INFO ITEM_TREE 4. 풀이 과정 (LEFT JOIN 사용) 1단계) '두 테이블을 이용하여 더 이상 업그레이드 할 수 없는 아이템'을 조회하기 위해, 교집합을 보여주는 INNER JOIN 말고 다른 것을 생각해 볼 필요가 있다. ITEM_INFO 테이블을 기준으로 아이템들의 업그레이드 전을 보아야 하니 LEFT JOIN을 해 준다. 아래의 출력값을 보면 업그레이드가 가능한 아이템 리스트를 볼 수 있는데, 여기서 아이템 ..

Skills/SQL 2024.03.13

프로그래머스: 연도별 평균 미세먼지 농도 조회하기 (MySQL)

1. 문제 2. 문제 풀기 전 생각해 볼 것 AIR_POLLUTION 👉🏻 연도, 평균 미세먼지 오염도, 초미세먼지 오염도 조회 1) 수원 지역으로 한정하기 2) 연도 별 그룹화하기 3) 평균 미세먼지, 초미세먼지 오염도는 소수 셋째 자리에서 반올림 YEAR ASC 값을 반올림하여 출력해 주는 ROUND 함수의 개념과 작성 방식 생각하기 3. 테이블 AIR_POLLUTION 4. 풀이 과정 1단계) 특정 지역으로 한정해서 조회를 해야 하니 WHERE절을 통해 ‘수원’만 조회하는 조건을 추가해 준다. SELECT FROM AIR_POLLUTION WHERE LOCATION2 = '수원' 2단계) YEAR()함수를 이용하여 컬럼 YM에서 연도만 추출해 준다. 그리고 AVG() 함수를 통해 미세먼지와 초미세먼..

Skills/SQL 2024.03.12

프로그래머스: 조건에 맞는 사원 정보 조회하기 (MySQL)

1. 문제 2. 문제 풀기 전에, HR_DEPARTMENT 👉🏻 X HR_EMPLOYEES 👉🏻 사번, 성명, 직책, 이메일 HR_GRADE 👉🏻 점수 합계 상, 하반기 접수 합계가 가장 높은 사원 정보 조회하기 점수 합계 DESC (=점수 높은 순으로) 3. 테이블 HR_DEPARTMENT AS DEPT HR_EMPLOYEES AS EMP HR_GRADE AS GR 4. 풀이 과정 1단계) 테이블 DEPT와 테이블 EMP는 DEPT_ID라는 공통 컬럼을 가지고 있고, 테이블EMP와 테이블 GR은 EMP_NO라는 공통 컬럼을 가지고 있다. 이 세 테이블을 연결하여 쿼리문을 작성해야 하니 INNER JOIN을 해준다. SELECT FROM HR_DEPARTMENT AS DEPT INNER JOIN HR_E..

Skills/SQL 2024.03.09

프로그래머스: ROOT 아이템 구하기 (MySQL)

1. 문제 2. 문제 풀기 전에, ITEM_INFO 👉🏻 아이템 ID, 아이템 명 조회 ITEM_TREE 👉🏻 X ROOT 아이템 조회하기 아이템 ID ASC 3. 테이블 ITEM_INFO AS INFO ITEM_TREE AS TREE 4. 풀이 과정 1단계) 테이블 INFO와 테이블 TREE가 공통으로 가지고 있는 컬럼인 ITEM_ID를 이용하여 INNER JOIN을 해준다. SELECT FROM ITEM_INFO AS INFO INNER JOIN ITEM_TREE AS TREE ON INFO.ITEM_ID = TREE.ITEM_ID 2단계) ‘PARENT 아이템이 없는 아이템을 ROOT 아이템’이기 때문에, IS NULL을 이용하여 PARENT_ITEM_ID 컬럼에서 NULL 값을 조회하는 WHERE..

Skills/SQL 2024.03.09

프로그래머스: 조건에 맞는 개발자 구하기 (MySQL)

1. 문제 2. 문제 풀기 전에, DEVELOPERS 👉🏻 개발자 ID, 이메일, 이름, 성 조회 SKILLCODES 👉🏻 스킬의 코드 조회 Python 혹은 C# 스킬을 가진 개발자여야 함 ID ASC &, |, ^와 같은 비트 연산자에 대한 개념 생각하기 3. 테이블 SKILLCODES DEVELOPERS 4. 풀이 과정 1단계) 개발자의 ID, 이메일, 이름, 성을 조회하는 SELECT문을 작성해 준다. SELECT ID, EMAIL, FIRST_NAME, LAST_NAME FROM DEVELOPERS 2단계) 어떤 개발자의 SKILL_CODE가 400(=b'110010000')이라면, 이는 SKILLCODES 테이블에서 CODE가 256(=b'100000000'), 128(=b'10000000')..

Skills/SQL 2024.03.08