'SQL' 태그의 글 목록
다양성과 방향성

여행으로 재미있게 살고 엑셀로 성장하는 삶

SQL 14

데이터리안 그로스해킹 북토크 후기, 무엇이 중한디?

그로스해킹 책을 완독하고, 북토크 신청을 했는데 다행히 선정되서 다녀오게 되었습니다.:) 사업기획 직무로 매출보고를 하며 상품별 성장세와 사유들을 찾아보는데 많은 시간을 들이고 있습니다. 다만, 데이터가 정량적으로 쌓이지 않다보니 실제 데이터분석가 분들이 하는 업무와 많이 동떨어져있구나 라는 생각도 많이 들었습니다. 도메인에는 데이터들이 어느정도 자동으로 쌓이고 네임태그를 통해 딥하게 확인해보면 되지만, 데이터를 수기로 입력해야 하는 조직에서는 수집부터 정리 검증까지 참 어렵더라고요. 그래서 앞으로 어떤 길을 걸어가야 할까 참 많은 고민을 하고 있는데 업무환경에 따라 세부적인 업무가 다를 뿐, 큰 틀에서의 고민은 똑같다는 생각이 들었습니다. 도메인의 경우 퍼널분석, AARRR을 통해 고객의 FLOW를 살..

직무강화/SQL 2024.12.01

리텐션 5 종류와 Stickness. 데이터리안 SQL 캠프 실전반 1주차 미션

데이터리안 리텐션 블로그 글을 보며 인상깊었던 부분은 사실, 5개 내용 모두이다.처음 접하는 내용들이라서, 좀 더 디테일하게 생각하고 고민할 수 있게 된 것 같아서이다.결국 제일 중요한 것은 체화하여 내가 분석하게될 사이트에 맞는 분석 방법을 고르는 것이었다. 1. Classic Retention : 1일(방문), 2일(방문), 3일(미방문) 시 미방문한 날짜는 리텐션(방문하지 않은, 사용안한 것으로)  미체크  2. Rolling Retention : 위와 동일한 상황일 경우 4일차에 방문했다면 3일차도 방문한 것으로 체크 (리텐션이 높아짐) 3. Range Retention : 1,2일 / 3,4일을 묶어서 방문 % 체크→ 리텐션율은 2 > 3 > 1 순서로 나오게 됨. 즉, 리텐션 방법에 따라 나오..

직무강화/SQL 2024.10.13

[수강후기] SQL 데이터 분석캠프 33기 데이터리안

1.  결론 : SQL 캠프를 들으며 SQL에 대해 좀 더 이해하고 활용하고 응용할 수 있게 됐습니다.입문반은 기본적으로 SQL을 어떻게 활용하여 원하는 데이터를 뽑을 수 있는지를 배우는 것 같아요.또한, 연습을 많이 하고 직접 해봐야 알 수 있는 것들이 있는데요, 그런 시간을 가지게 된 것 같습니다. 2. 배경 :저는 SQLD 자격증을 따고 해커랭크 외 여러 사이트에서 문제를 풀고 있었어요.앞으로 SQL을 업무에 적용해서 DA or BA로 직무를 전환하고 싶기 때문이죠.저희 회사에서는 현재 SQL를 사용할 수 없는 환경이라 정성적인, 나머지 스킬적인, EXCEL, 스프레드를 활용할 수 있는 건 회사에서 배우고 SQL로 원하는 데이터를 뽑는 건 데이터리안 데이터 분석캠프로 배우기로 했습니다. 베이직한 내..

직무강화/SQL 2024.09.27

SQL 공부, 문자열과 정규표현식 REGEXP

오늘도 문제를 푸는데 새로운 함수가 있어서 가지고 왔다.내가 찾는 메일은 3가지의 조건에 부합해야 한다. 1. 접두사의 첫번째 문자는 소문자 또는 대문자로 시작할 것2. 접두사에서 다른 문자들은 '_,'.','-'를 포함할 수 있음.3. domain은 @leetcode.com으로 끝나야 함.     사실, 테이블에서 값을 불러오는건 전혀 문제가 되지 않는데,중요한 건 도대체 이걸 어떻게 찾아야하는 것이느냐였다.물론, rigt(a,5)와 같은 방식으로 @leetcode.com은 찾을 수 있지만앞에 있는 접두사 조건들은 도대체 어떻게 해야 할지 몰랐다. REGEXP(Regular Expression) 정규표현식 : SQL에서 문자열이 특정 패턴을 만족하는지 검사할 때 사용되는 함수 ^ : 문자열의 시작을 의..

직무강화/SQL 2024.09.01

SQL 학습 GROUP_CONCAT! 엑셀 함수를 SQL에서도.

SQL 학습은 계속 하고 있다. 다만, 건건히 올리는 건 큰 의미가 없고내재화하는게 더 중요해서 새로운 함수를 찾았을 때무언가, 기록이 필요할 때 쓰게되었다.  위의 문제는 아래와 같이 풀 수 있었다일자별로 총 판매된 종류의 수와 상품명을 적어야 했다.일자별, 판매종류는 GROUP BY, COUNT(DISTINCT)로 해결했다.그룹핑한 정보들에 어떻게 중복되지 않은 상품명들을 나열하지...? 싶었는데 함수가 있었다! SELECT sell_date, COUNT(DISTINCT product) as num_solds, product FROM Activities GROUP BY sell_date ORDER BY 1 엑셀에서도 CONCAT을 사용해 각 필드값을 이어줬었는데, SQL에서 그룹함수로 사용 할 수 있..

직무강화/SQL 2024.08.31

SQL 학습 10일차, Querie Quality and Percentage (CASE WHEN, AVG)

후~ 이번 문제는 어떻게든 혼자 풀어볼려고 30분동안 붙잡고 씨름했다.1. query rating / position의 평균 비율2. 모든 raiting의 percentage 단, 3보다 작은 것들만 처음에는 WHERE rating 전체 데이터에 대한 평균 비율이기 때문에 테이블을 2개로 나누어야 했다. self join을 위해 queries 테이블을 a와 b로 나누고1번에 대한 것은 a테이블에 있는 내용을 불러오고2번에 대한 것은 b테이블에 있는 내용을 불러오기로 했다. LEFT JOIN으로 rating NULL값등 이슈가 있다고 하여 CAHT GPT가 열을 불러올 때 CASE문을 써서 해결하는 방법을 알려주었다.round(sum(case when b.rating  3 then 1 else 0 end)..

직무강화/SQL 2024.08.29

SQL 학습 8일차 LEETCODE, Biggest Single Number

문제1. 중복되지 않는 제일 큰 값을 찾아라2. 값이 없을 경우 NULL이 나오게   정답SELECT COALESCE(MAX(num), NULL) AS numFROM MyNumbersGROUP BY numHAVING COUNT(num) = 1; 내가 작성한 답은 이거다!SELECT max(num)FROM MyNumbersGROUP BY numHAVING count(num) 2 중복되지 않는 값 중 제일 큰 값을 찾으려면, 중복 값을 제거하고 그 안에서 최대값을 불러오면 된다고 생각했다.그래서 count(num)

직무강화/SQL 2024.08.26

SQL 학습 7일차 LEETCODE 607. Sales Person. (EXIST, NOT EXIST)

SQL을 계속 하다보니 약간 패턴이 보인다.물론, 원리를 이해하고 하는 것이 더 중요하긴 한데 조금이나마 익숙해지는 듯 하다.그렇다 보니 왜 정답이 아닐까..? 라는 것을 계속 찾게된다.  이번문제는 SalesPerson, Company, Orders 세개의 테이블을 연결하여 원하는 값을 찾는 문제다.SalesPerson의 Sales_id와 Orders의 Sales_id를 연결할 수 있고Company의 com_id와 Orders의 com_id를 연결할 수 있다. 또한, Company에 있는 name이 RED 인 것을 제외한 후 SalesPerson에서 name (이름)을 찾으면 된다. SELECT s.nameFROM salesperson sWHERE NOT EXISTS(    SELECT o.sales_..

직무강화/SQL 2024.08.24

SQL 학습 6일차, 183. Customers Who Never Order (NULL, LEFT JOIN)

오늘도 출근 전 SQL 공부!왠지.. 쉽게 풀 수 있을 것 같다는 생각이 들었지만결과는.... 실패! 그래도 쿼리가 실행이 안되는 이유를 깨달았다. 1차 시도 SELECT customers.name as customersFROM customersJOIN orders ON customers.id = orders.customeridGROUP BY customers.idHAVING NOT IN orders.id어떻게 풀어야 할까?주문을 하지 않은 사람을 추출JOIN으로 주문한 사람을 찾을 수 있음원래 테이블에서 주문한 사람을 빼주면 되는데...레프트 아우터 조인으로 주문이 없는 값은 NULL로 나오게 해서 찾으면 됨.>>> 생각은 맞았는데 어떻게 구현해야 하는지 모름   2차 시도결국 어떻게 해야 하는지는 알..

직무강화/SQL 2024.08.22

SQL 학습일지 5일차, 리트코드 182. Duplicate Emails 중복값 찾기

중복된 이메일을 찾아라!! 문제를 보고서 생각보다 쉽겠다고 생각했다.그러나 그건 내 생각일 뿐이었다... 중복값을 DISTINCT로 제거만 해봤지 중복된 걸 찾는 방법을 몰랐기 때문이다.EXCEL이라면 중복값 찾는 서식을 사용하거나 = = 으로 TRUE FALSE or VLOOKUP을 사용하면 된다. 그러나, SQL에는 그런 함수가 없고 기작 자체가 다르다.... 하면서 또 느낀 건 진짜 SQL은 또다른 언어고 그에 맞는 방식을 찾아야 한다는 것. 휴...! 첫번째 풀이과정중복된 이메일들전체 이메일 - 독립 이메일 = 중복 이메일들INLINE으로 진행 불가, 여러개의 행이 나오기 때문그렇다는 건 SELFJOIN으로 두 테이블 간에  차이를 만들어주면 됨아니면 count...? 어떻게 표현하지? >> 이렇..

직무강화/SQL 2024.08.21