본문 바로가기

전체 글

(184)
SQL 고득점 kit(SELECT) - 멸종위기의 대장균 찾기 프로그래머스 문제 https://school.programmers.co.kr/learn/courses/30/lessons/301651 풀이 https://school.programmers.co.kr/questions/75058 -- 풀이 쿼리 -- 각 세대별 자식 없는 개체 수(COUNT)와 그 세대(GENERATION)를 출력 -- 세대에 대해 오름차순 정렬. -- 각 세대별 자식 없는 개체가 적어도 1개체는 존재함 -- 부모 없는 세대 -> 1세대 -- 1세대가 부모인 세대 -> 2세대 -- 2세대가 부모인 세대 -> 3세대 -- ... => 재귀문 사용! WITH RECURSIVE GEN AS ( SELECT ID, PARENT_ID, 1 AS GENERATION FROM ECOLI_DATA WHE..
SQL 고득점 kit(String, Date) - 오랜 기간 보호한 동물(2) 프로그래머스 문제 https://school.programmers.co.kr/learn/courses/30/lessons/59411 풀이 https://school.programmers.co.kr/questions/75013 -- 풀이 쿼리 -- 입양 간 동물 중 보호기간이 가장 길었던 동물 2마리의 아이디와 이름 조회 -- 보호기간 긴 순으로 조회 SELECT I.ANIMAL_ID, I.NAME FROM ANIMAL_INS I JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID ORDER BY TIMESTAMPDIFF(MINUTE, I.DATETIME, O.DATETIME) DESC LIMIT 2 - DATETIME이 분 단위이므로 DATEDIFF()보단 TIMESTA..
[MySQL] INSERT 함수 기본 사용법 - original_string은 원본 문자열. - position은 new_string이 삽입된 후, 문자열 내에서 new_string의 최종 위치(1부터 시작) - length는 original_string에서 new_string 삽입 시 제거될 문자 개수. - new_string은 삽입될 문자열. INSERT(original_string, position, length, new_string) 설명을 읽어보면 알겠지만, 함수가 INSERT라고 해서 삽입의 기능만 있는 것이 아니다. 문자열을 대체하는 기능도 있다. 대체하는것도 어찌 보면 삽입의 일종이니 INSERT라 한 것 같긴 하다. 본인이 특정 함수나 뭐 쿼리, 도구, 툴 등의 사용법에 대해 포스팅 할 때 가장 좋아하는 말이 있다. 백..
SQL 고득점 kit(String, Date) - 조건에 맞는 사용자 정보 조회하기 프로그래머스 문제 https://school.programmers.co.kr/learn/courses/30/lessons/164670 풀이 https://school.programmers.co.kr/questions/74925 좀 생각해볼 만한 부분은 전화번호 사이에 하이픈을 어떻게 넣는가인데, 이 부분에 대해서 2가지 풀이방법으로 풀어 보았다. -- 풀이 1. JOIN 없음, 서브쿼리 / INSERT 사용 SELECT USER_ID , NICKNAME , CONCAT(CITY, ' ', STREET_ADDRESS1, ' ', STREET_ADDRESS2) AS '전체주소' , INSERT(INSERT(TLNO, 8, 0, '-'), 4, 0, '-') AS '전화번호' FROM USED_GOODS_US..
SQL 고득점 kit(String, Date) - 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 프로그래머스 문제 https://school.programmers.co.kr/learn/courses/30/lessons/164671 풀이 https://school.programmers.co.kr/questions/74836 -- 풀이 쿼리 -- 파일경로 : /home/grep/src/BOARD_ID -- 파일 이름 : 파일ID, 파일이름, 파일확장자로 구성됨 -- 조회수가 가장 높은 게시물은 유일함. SELECT CONCAT('/home/grep/src/', BOARD_ID, '/', FILE_ID, FILE_NAME, FILE_EXT) AS FILE_PATH FROM USED_GOODS_FILE WHERE BOARD_ID = ( SELECT BOARD_ID FROM USED_GOODS_BOARD O..
[visualization] 지도 시각화 - folium 소개 및 간단 사용법 파이썬에선 다양한 방법으로 데이터를 시각화 할 수 있다. 대표적으로 Matplotlib, Seaborn등의 라이브러리가 있으며, 보다 interactive한 시각화를 할 수 있는 Plotly도 있다. 하지만 이런건 보통 그래프나, 뭐 시각화 개체 등을 표현할 때 사용하는 라이브러리들이다. 그런데 만약 지도 위에 뭔가 표시하고 싶다, 즉 지도를 보여주고 싶다면? 이럴 때 사용하는 것이 folium이라는 라이브러리다. folium이란? folium은 leaflet.js 기반으로 만들어진 Python 지도 시각화 라이브러리다. (공식 문서) folium을 사용하면 interactive한 지도를 생성하고 마커를 추가하여 시각화하거나 원으로 범위를 표기하고 html 파일로 내보내기 등을 수행할 수 있다. 역시 백..
Project 7. 주류 판매 데이터 분석 (2) 이 글은 24.03.05에 본인 벨로그에 작성했던 글을 옮겨 온 것이다. Project 7. 주류 판매 데이터 분석 주류 산업의 데이터 분석 컨설턴트가 된 본인. 데이터 처리부터, 대시보드로 비즈니스 인사이트를 전달하기까지의 과정을 직접 처리해 보자! 지난 시간엔 아래와 같은 내용에 대해 실습해보았다. 주류 산업의 데이터 분석 컨설턴트가 된 본인이 아래와 같은 업무를 맡았다고 가정한다. 해당 지역(여기서는, 데이터가 수집된 미국 아이오와 주를 의미함)의 주류 판매 시장의 동향은 어떤지 알려달라. 어느 지역에 어떤 상품을 주력으로 팔아야 할 지, 관련 인사이트를 제공해 달라. 이번 시간엔, 지난 시간에 PySpark로 전처리 했던 데이터를 가지고 MySQL을 활용해 조금 더 세부적인 분석을 진행하고자 한다..
Project 7. 주류 판매 데이터 분석 (1) 이 글은 24.03.04에 본인 벨로그에 작성했던 글을 옮겨 온 것이다. Project 7. 주류 판매 데이터 분석 주류 산업의 데이터 분석 컨설턴트가 된 본인. 데이터 처리부터, 대시보드로 비즈니스 인사이트를 전달하기까지의 과정을 직접 처리해 보자! 데이터 소개 캐글에서 가져온 데이터를 활용한다 https://www.kaggle.com/datasets/wethanielaw/iowa-liquor-sales-20230401 현업 데이터 분석가의 실무는? 즉, 데이터 분석가는 raw 데이터 처리, 데이터 분석, 리포팅까지의 모든 업무를 할 수 있어야 한다! 이번 프로젝트에서는 위에서 언급했던 것과 같이 주류 산업의 데이터 분석 컨설턴트가 된 본인이 아래와 같은 업무를 맡았다고 가정한다. 해당 지역(여기서는,..