저번 1차 분석을 바탕으로 심화 분석을 진행해보자. 2024.03.11 - [프로젝트] - 관광회사 고객 행동 데이터 분석 (1) 관광회사 고객 행동 데이터 분석 (1) 캐글에서 제공해주는 데이터셋을 SQL으로 분석해보자! 분석하고자 하는 데이터셋은 아래에서 구하였다. https://www.kaggle.com/datasets/ddosad/customer-behaviour-tourism-portal/data Tourism Page Engagement Explore User Pat yeonnys.tistory.com 체크인 수 컬럼을 중점으로 데이터를 분석해 볼 예정이다. 외부 지역에 체크인을 한 횟수는 곧 여행 횟수라고 할 수 있다. (물론, 한 번의 여행에 오랜 기간을 여행하여 체크인 수가 커졌을 수도 ..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/120860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 def solution(dots): # dots 배열의 가장 마지막 원소를 기준점으로 잡음 standard = dots.pop() # 가장 마지막 원소가 빠진 dots 배열을 순회하며.. for x, y in dots: # 기준점과 x좌표가 같은 좌표는 세로의 길이(y좌표의 차이)를 구함 if x == standard[0]: length = abs(y-standard[1]) ..
캐글에서 제공해주는 데이터셋을 SQL으로 분석해보자! 분석하고자 하는 데이터셋은 아래에서 구하였다. https://www.kaggle.com/datasets/ddosad/customer-behaviour-tourism-portal/data Tourism Page Engagement Explore User Patterns on Social Media Page : EDA & Classification www.kaggle.com 먼저 데이터의 컬럼들을 살펴보자. 총 17개의 컬럼이 존재한다. 컬럼명 설명 UserID 사용자의 고유 식별자 Taken_product 사용자가 여행상품을 샀는지 여부 Yearly_avg_view_on_travel_page 사용자가 연간 평균적으로 여행 관련 페이지를 조회한 횟수 pr..
드디어 Mac의 MariaDB에서 일어나는 "Table 'XXX' doesn't exist in engine" 에러를 해결하였다. (이 에러 때문에 3일은 고생한듯하다^^) 날짜: 2024년 3월 11일 기준 OS: MacBook M3 Pro Sonoma 14.3 MariaDB 11.3.2 버전 다른 모든 쿼리를 작성하면 정상적으로 결과가 나오지만, WITH 구문만 작성하면 저런 에러가 발생하였다. 심지어, WITH 구문 내의 쿼리만 실행했을 때와 본 쿼리만을 별개로 실행했을 때는 정상적으로 작동하는 것을 보니 오타 등의 문제는 전혀 아니었고, 오직 WITH 구문을 썼을 때만 발생했던 에러였다. 혹시나 gui 툴의 문제인가 하여 터미널 상에서도 실행해보았지만, 역시나 같은 에러가 발생하였다. 시도 1 :..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/120907 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 처음에는 저번에 풀었던 방식을 참고하여 다음과 같이 풀어보았다. [실패 코드] # 수식이 옳은지 판단하는 함수 def exp(numbers): # "=" 연산자를 기준으로 식을 나눔 expression = numbers.split(" = ") # ex. 3 - 4 ==> 3 + -4 와 같은 형태로 변경하여 합을 구하고, 그 값이 수식이랑 맞는지 확인 if sum(int(i)..
저번 글에서 설치한 Sequel Pro에서 캐글 데이터를 분석하기 위해 CSV 파일을 불러오겠다. 2024.03.08 - [SQL] - 맥북 MariaDB 설치하기 & GUI 툴(Sequel Pro) 맥북 MariaDB 설치하기 & GUI 툴(Sequel Pro) SQL을 활용하기 위한 MariaDB를 설치해보자. MySQL VS MariaDB 들어가기 전 MySQL과 MariaDB를 비교해보자면, 데이터베이스에는 관계형 데이터베이스와 비관계형데이터베이스가 있다. 관계형 데이터베이스 yeonnys.tistory.com 먼저, Sequel Pro를 실행하고, File -> Import를 진행한다. 원하는 파일의 위치로 이동하여 원하는 CSV 파일을 가져온다. Open을 누르면,, 다음과 같이 CSV 컬럼에..
* 2024년 3월 11일 기준, MariaDB 상에서 WITH 구문 사용 시 에러가 발생하기에, 필자는 MariaDB 대신 MySQL로 다시 설치를 하였다. GUI 툴 역시 Sequel Pro의 업데이트가 중단되어, 유사한 Sequel Ace로 다시 설치하였다. (사용방법 동일) 2024.03.11 - [SQL] - Mac MariaDB "doesn't exist in engine" 에러 해결 + MySQL 설치 방법 Mac MariaDB "doesn't exist in engine" 에러 해결 + MySQL 설치 방법 드디어 Mac의 MariaDB에서 일어나는 "Table 'XXX' doesn't exist in engine" 에러를 해결하였다. (이 에러 때문에 3일은 고생한듯하다^^) 날짜: 20..
7. SQL을 활용한 데이터 분석 : 캐글의 데이터셋 활용 7-1. 실전 데이터 분석 사례 1 : Indian Restaurant Dataset https://www.kaggle.com/datasets/abhijitdahatonde/27000-indian-restaurant-dataset : 인도내 식당들에 있는 정보를 다각도로 제공 (평점, 식당음식의 평균 가격, 평균 배달 시간, 북인도 위치 여부, 패스트푸드 여부, 길거리음식 여부 등) 🍜 27,000 + Indian Restaurant Dataset 🏰 🍰 Indian Restaurants dataset www.kaggle.com 이제, MariaDB에 데이터셋을 올려 데이터를..
6. 효율적인 SQL 코드 작성하기 6-1. 테이블을 집합으로 생각하기 - 최대한 작게 만들어 놓고 JOIN 하기 : 최대한 먼저 필터링을 해서 집합 크기를 줄여준 뒤, 다른 테이블과 JOIN 하는 것이 좋음 선 필터링 후 JOIN VS 선 JOIN 후 필터링 ==> 시간이 훨씬 짧음! 6-2. *, % 사용 지양하기 새로운 테이블을 접했을 때.. - LIMIT 걸고 조회하기 : 행수가 매우 큰 테이블을 확인할 수도 있기 때문에, 항상 LIMIT을 거는 것이 좋음 SELECT product_id, name FROM products LIMIT 10 - 파티션이 있는 테이블인지 확인하고, 파티션을 필터 조건으로 걸고 조회하기 ex. 유..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/120902 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 [풀이 1] def solution(my_string): return eval(my_string) [풀이 2] def solution(my_string): # 공백을 기준으로 문자열을 나눈다. new_str = my_string.split(' ') # 정확한 수식은 첫 번째로 연산자가 나오지 않으므로 기본 answer은 첫 번째 숫자로 지정한다. answer = int(new..