본문 바로가기

SQL5

프로그래머스 SQL Lv.5 상품을 구매한 회원 비율 구하기 프로그래머스 SQL Lv.5 상품을 구매한 회원 비율 구하기 문제 USER_INFO 테이블과 ONLINE_SALE 테이블에서 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수와 상품을 구매한 회원의 비율(=2021년에 가입한 회원 중 상품을 구매한 회원수 / 2021년에 가입한 전체 회원 수)을 년, 월 별로 출력하는 SQL문을 작성해주세요. 상품을 구매한 회원의 비율은 소수점 두번째자리에서 반올림하고, 전체 결과는 년을 기준으로 오름차순 정렬해주시고 년이 같다면 월을 기준으로 오름차순 정렬해주세요. 문제 접근 방식 USER_INFO : 2021 년에 가입한 회원 목록 을 구한다. ONLINE_SALE 중 2021 년에 가입한 회원의 구매 목록 -> inner join ONLINE_SALE 을 Y.. 2024. 1. 26.
[MySQL] datetime 과 BETWEEN A AND B Datetime 칼럼으로 특정 기간의 데이터를 조회하려면 어떻게 해야할까? 예를 들어,2020-07-12 부터 2020-07-13까지의 회원가입한 유저의 목록을 추출한다고 가정하자. SELECT * FROM USERS WHERE CREATED_AT BETWEEN '2020-07-12' AND '2020-07-13' ; 자연스럽게 위와 같이 작성하게 된다. 하지만 결과값은 12일의 유저만 조회하게 된다. 왜일까? Datetime type 칼럼의 경우, 이름에서 미루어 짐작할 수 있듯이 date + time 의 조합이다. 그런 만큼 time 을 명시하지 않을 경우, 00:00:00 이 디폴트 값으로 설정된다. 그렇다면 방금 전 쿼리는 다음과 같다. select * from use.. 2024. 1. 26.
sql 관련 기본 개념 DML (DATA를 CRUD) DATA 를 생성하고 , 읽고, 업데이트하고, 삭제하는 유형 ※C(REATE) R(EAD) U(PDATE) D(DELETE) DCL (TABLE, SCHEMA 를 CRUD) SCHEMA와 TABLE 를 생성하고 , 읽고, 업데이트하고, 삭제하는 유형 TCL (권한 관리) Transaction이란? User 1, 2 가 동시에 한 계좌에서 각각 6000원, 7000원을 인출하려고 한다고 생각해보자 문제가 생기는 경우는 DELETE, UPDATE 를 동시에 하는 일을 방지하기 위해 TRANSACTION 이 충돌해서 문제가 된 것일 수 있다. 먼저 TRANSACTION 을 일으키면 다른 USER는 하지 못 하게끔 막는 것 SELECT 접속 방법 1 : PC TERMINAL로 쿼리.. 2022. 12. 9.
퍼널 분석 문제 풀이 회고 문제 풀이 사고의 과정 정리 이제 문제를 풀면서 나름의 접근 방식을 한번 정리해보고 스스로 메타 인지가 되도록 노력해보려고 한다. 일단 FUNNEL 분석에서 중요한 키포인트는 ROW - EVENT_NAME 단위로 있다. EVENT_NAME은 다르나 user_pseudo_id & ga_session_id 가 동일한 경우가 있을까? funnel 분석이라는 것이 본질적으로 한 유저가 들어와서 다음 funnel로 이동하였는가를 확인하는 과정임 고로 선행 퍼널을 지나온 유무를 확인하기 위해선 필터링(where event_name = 'page_view' 절)로는 안됨 다시 outer query 로 나가서 확인해줘야함 exists subquery를 써야 하나? e.g.user_pseudo_id ga_.. 2022. 11. 23.