본문 바로가기

분류 전체보기

(184)
[Mode] The SQL Tutorial For Data Analysis SQL 공부를 하다 Mode라는 사이트를 알게 되었다. https://mode.com/ Modern Business Intelligence | Better data, better decisions Mode is a collaborative data platform that combines SQL, R, Python, and visual analytics in one place. Connect, analyze, and share, faster. mode.com SQL 기본 문법도 알려주고, 쿼리문을 직접 짜볼 수 있는 플랫폼도 제공하고, 데이터도 제공해주는 뭐 그런 사이트이다. 그 중에 홈페이지 상단의 Resource 탭에 들어가면 이렇게 The SQL Tutorial For Data Analysis라는 ..
[MySQL] - Row import failed with error: ("Data truncated for column at row 1", 1265) SQL로 개인 프로젝트를 시작해보고자, 캐글에서 한 영국 온라인 쇼핑몰의 데이터를 다운받아 Workbench에 업로드했다 https://www.kaggle.com/datasets/mashlyn/online-retail-ii-uci Online Retail II UCI A real online retail transaction data set of two years. www.kaggle.com 그런데 아래와 같은 에러가 뜨더라. 이것은 대체 무슨 에러인가? 역시 구글은 모든 것을 알고 있었다. 해당 에러는, 테이블을 올릴 때 설정한 컬럼(여기서는 Customer ID)의 데이터 타입과, 실제 해당 컬럼의 데이터 타입이 일치하지 않아서 생기는 에러다. Customer ID의 데이터는, 캐글 페이지를 봐도 실..
SQL 고득점 kit(GROUP BY) - 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 -- 풀이(1) SELECT CAR_TYPE , COUNT(CAR_TYPE) AS CARS FROM CAR_RENTAL_COMPANY_CAR WHERE OPTIONS LIKE '%통풍시트%' OR OPTIONS LIKE '%열선시트%' OR OPTIONS LIKE '%가죽시트%' GROUP BY CAR_TYPE ORDER BY CAR_TYPE; - 해설 CAR_TYPE별로 "통풍시트, 열선시트, 가죽시트 중 하나 이상의 옵션이 포함된"이라는 조건을 잘 작성하고, 그 외 자동차 종류를 기준으로 오름차순이라는 기준만 잘 보고 작성하면 되는 문제였다 * 다른 풀이 LIKE가 아닌 REGEXP 연산자를 사용해서 푸는 것도 가능하다. [STUDY/SQL] - MYSQL - REGEXP(REGular EXPress..
[MySQL] - REGEXP(REGular EXPression) 프로그래머스에서 다음과 같은 문제를 풀었다. 조건만 잘 맞춰주면 되는 문제라 생각했고, 실제로도 그러했다. 복잡한 함수나 쿼리문을 짤 필요도 없어서, 아래처럼 쿼리문을 작성했고 ACCEPT 되었다. -- 처음 풀이. 정답. SELECT CAR_TYPE , COUNT(CAR_TYPE) AS CARS FROM CAR_RENTAL_COMPANY_CAR WHERE OPTIONS LIKE '%통풍시트%' OR OPTIONS LIKE '%열선시트%' OR OPTIONS LIKE '%가죽시트%' GROUP BY CAR_TYPE ORDER BY CAR_TYPE; 그런데 WHERE절에 조건을 3개나 써 주기가 좀 귀찮았더라... "OPTIONS에 통풍시트나 열선시트, 가죽시트 셋 중 하나라도 있으면" 이라는 조건을 한 ..
SQL 고득점 kit(GROUP BY) - 즐겨찾기가 가장 많은 식당 정보 출력하기 -- 풀이 WITH MAX_FAV AS ( SELECT FOOD_TYPE , MAX(FAVORITES) AS FAVORITES FROM REST_INFO GROUP BY FOOD_TYPE ) SELECT R.FOOD_TYPE , R.REST_ID , R.REST_NAME , M.FAVORITES FROM REST_INFO R JOIN MAX_FAV M ON R.FAVORITES = M.FAVORITES GROUP BY FOOD_TYPE ORDER BY FOOD_TYPE DESC - 해설 1. WITH절로 FOOD_TYPE별 가장 높은 FAVORITES를 출력하는 MAX_FAV라는 테이블을 만듦. 2. 기존 REST_INFO 테이블과 JOIN해서 FOOD_TYPE별로 MAX_FAV의 FAVORITES와 같..
570. Managers with at Least 5 Direct Reports(Medium) Table: Employee +-------------+---------+ | Column Name | Type | +-------------+---------+ | id | int | | name | varchar | | department | varchar | | managerId | int | +-------------+---------+ id is the primary key (column with unique values) for this table. Each row of this table indicates the name of an employee, their department, and the id of their manager. If managerId is null, then the em..
[MySQL] - Invalid use of group function Leetcode에서 아래와 같은 문제를 풀었다. 570. Managers with at Least 5 Direct Reports Table: Employee +-------------+---------+ | Column Name | Type | +-------------+---------+ | id | int | | name | varchar | | department | varchar | | managerId | int | +-------------+---------+ id is the primary key (column with unique values) for this table. Each row of this table indicates the name of an employee, their de..
SQL 고득점 kit(SELECT) - 서울에 위치한 식당 목록 출력하기 조건을 잘 만족시켜야 하는 문제였다. 같은 결과가 출력되더라도, 답이 아닐 수 있다. -- 처음 풀이. 틀린 풀이. SELECT I.REST_ID , I.REST_NAME , I.FOOD_TYPE , I.FAVORITES , I.ADDRESS , ROUND(AVG(R.REVIEW_SCORE), 2) AS SCORE FROM REST_INFO I LEFT JOIN REST_REVIEW R ON I.REST_ID = R.REST_ID WHERE I.ADDRESS LIKE '서울%' GROUP BY R.REST_ID ORDER BY SCORE DESC, I.FAVORITES DESC; 아무리 봐도 틀린 곳이 없다고 생각했지만 역시나 그것은 내 생각일 뿐이었다. 조건을 잘 만족시키지 못했었다. -- 고친 정답 ..