본문 바로가기

SQL

(18)
[SQL 강의] 러닝스푼즈 | SQL과 구글 시트로 배우는 데이터 리터러시 첫 걸음 (1) SECTION 1. 데이터 리터러시의 이해 및 접근 내가 궁금한 건 남에게 부탁하지 않아도 내가 직접 뽑을 수 있는 역량 만큼만. 통계지식 - 평균, 분산, 표준편차 등 숫자로는 이런데, 현장에서도 맞을까요? 등 계속 현장 확인 필요 이 중에서 내가 강점을 갖고 잘 할 수 있는 부분, 관심이 가고 주로 해보고 싶은 부분을 꼽아보기. (강의자 분은 수집 및 관리 외의 4가지 모두라고... 저도 그렇게 해볼게요...) 다 어떻게 보면 당연한 얘기 같지만, 실제로 배민에서 사업개발 직무에 계신 분이 하는 이야기이니 현업 관련된 이야기를 중심으로 새겨 듣자! '내리는' 방식의 개선방안 절대 금지 : 명령처럼 내리는 것이 아니라, 명확한 분석 결과(근거)에 따라 제안하는 포지션임을 명심 모든 과정에서 계속 현업과..
[SQL 코딩테스트] 리트코드 Advanced String Functions / Regex / Clause 정답 무슨 문제가 나오는 건지 예상이 안되는 챕터..? EASY가 많으니 훈련한다 생각하고 해보자! [EASY] 1667. Fix Names in a Table CONCAT / UPPER / LOWER / SUBSTR ⏰ 4:23 SELECT USER_ID, CONCAT(UPPER(SUBSTR(NAME,1,1)),LOWER(SUBSTR(NAME,2))) AS NAME FROM USERS ORDER BY 1 [EASY] 1527. Patients With a Condition LIKE ⏰ 4:03 SELECT * FROM PATIENTS WHERE CONDITIONS LIKE 'DIAB1%' OR CONDITIONS LIKE '% DIAB1%' [EASY] 196. Delete Duplicate Emails D..
[SQL 코딩테스트] 프로그래머스 JOIN 정답 [LV4] 주문량이 많은 아이스크림들 조회하기 UNION / LIMIT ⏰ 5:38 WITH ORDER_T AS (SELECT * FROM FIRST_HALF UNION ALL SELECT * FROM JULY ) SELECT FLAVOR FROM ORDER_T GROUP BY FLAVOR ORDER BY SUM(TOTAL_ORDER) DESC LIMIT 3 [LV4] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 WITH / WHERE ⏰ 66:06 이렇게까지 오래 걸릴 문제는 아니었는데... 날짜 설정에서 애를 먹어서 시간을 많이 잡아먹었다. 이번에도 나는 WITH로 쉽게(?) 풀어버리려고 했는데, WHERE절에 서브쿼리를 써서 더 깔끔하게 푸신 분의 풀이를 같이 공유한다. [정답1] 여러 조..
[SQL 코딩테스트] 리트코드 Sorting and Grouping 정답 어쩌다 보니 '해야 하는' 일들 중 코딩테스트가 제일 재밌는 일(?)이 되어 버려서 자꾸 여기로 도망온다. 오늘은 아침 일과 시작으로 코테부터 빠르게 뿌수고 진짜 해야 하는 일을 하러 가련다. 2356. Number of Unique Subjects Taught by Each Teacher #DISTINCT #GROUPBY ⏰ 4:47 SELECT TEACHER_ID, COUNT(DISTINCT SUBJECT_ID) CNT FROM TEACHER GROUP BY TEACHER_ID 1141. User Activity for the Past 30 Days I #BETWEEN #GROUPBY ⏰ 11:07 비트윈 함수를 쓸 때 무조건 AND 앞에 작은 숫자, 뒤에 큰 숫자가 와야 하는지 처음 알았다... 순..
[SQL 실전 무료강의] 프로젝트 1. 주간 활성 유저 감소 인프런에 올라와있는 데이터리안 무료 강의, [백문이불여일타] 데이터 분석을 위한 SQL 실전편 (무료 미니 코스) 수강을 시작했다. 3개의 실무 프로젝트를 sql로 어떻게 해결할 수 있는지 실제 예시와 함께 진행해볼 수 있는데, 강의만으로는 5시간이 채 안되는 분량이어서 이번 주 내로 완강을 목표로 잡았다. 근데 오늘 첫 강의를 들어보니 혼자 열심히 문제 상황을 읽고, 분석하고, 시도해본 뒤 강의를 들으며 내가 생각한 것과 어떻게 달랐는지 매칭하는 식으로 들어야 하는데, 이거 생각보다 오래 걸리겠구나 싶다. 1. 문제 상황 분석하기 출처 : https://mode.com/sql-tutorial/a-drop-in-user-engagement#getting-oriented 상황 및 해결 순서 자. 오늘은 9..
[SQL 코딩테스트] 프로그래머스 String, Date 정답 재밌을 때 진도 쭉쭉 빼기! 자동차 대여 기록에서 장기/단기 대여 구분하기 #DATEDIFF #DATE_FORMAT 와... 쓸데없이 짱 헤멘 문제. DATEDIFF한 결과값에 +1을 해줘야 한다. 질문하기 게시판에 요 내용으로 틀린 사람들이 수두룩... 왜냐하면 오늘 빌려서 오늘 반납한 경우, 두 날짜를 빼면 0이 되지만 대여일은 1일로 계산하기 때문이다. 마찬가지로 오늘 빌려서 내일 반납하면 대여일은 2일이다. SELECT history_id, car_id, DATE_FORMAT(start_date, '%Y-%m-%d') start_date, DATE_FORMAT(end_date, '%Y-%m-%d') end_date, IF (DATEDIFF(END_DATE,START_DATE)+1 >= '30', ..
[SQL 코딩테스트] 프로그래머스 IS NULL 정답 분명 별거 아닌거 아는데 뭔가 항상 틀릴 것 같고 무서운 NULL 관련 함수. 짧고 굵게 뿌셔보자. 경기도에 위치한 식품창고 목록 출력하기 #IFNULL 처음에 NULLIF와 헷갈려서 틀림. 아니 이걸 어케 외우지? 했는데 조금만 들여다보니 무식하게 영어를 해석하기만 하면 된다. NULLIF (A, B) : NULL로 해라. IF 만약에 A가 B이면! IFNULL (A, B) : IF 만약에 A가 NULL 이면 B해라! SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, IFNULL(FREEZER_YN, 'N') FREEZER_YN FROM FOOD_WAREHOUSE WHERE ADDRESS LIKE '%경기%' ORDER BY WAREHOUSE_ID ; 이름이 없는 동물의..
[SQL 코딩테스트] 프로그래머스 SUM, MAX, MIN 정답 오늘도 쉬웠으면... 하는 바램을 안고 3일차 시작! 가격이 제일 비싼 식품의 정보 출력하기 #SUBQUARY #MAX 서브쿼리를 활용해야 하는 MAX 문제! MAX로 불러온 값에는 그 행의 값 '하나'밖에 없기 때문에 'PRICE = '을 걸어 조건을 준다고 이해하면 된다. SELECT * FROM FOOD_PRODUCT WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT) ; 가장 비싼 상품 구하기 #MAX 그러니까 이런 문제는 좀 1번에 넣으라고..? 레벨을 0으로 표기하던지...^^ SELECT MAX(PRICE) AS MAX_PRICE FROM PRODUCT ; 최댓값 구하기 #MAX SELECT MAX(DATETIME) FROM ANIMAL_INS ; 최..