본문 바로가기

SQL

(7)
[MySQL] DATEDIFF, TIMESTAMPDIFF, INTERVAL 과제를 하면서 가장 헷갈렸던 부분이 바로 이 날짜 관련 함수이다. 나는 거의 대부분 DATEDIFF 함수를 사용했었는데 이번 과제에선 DATEDIFF를 사용하면 자꾸 이상한 값이 나왔다.  1. DATEDIFF와 TIMESTAMPDIFF의 차이 및 사용법 ① DATEDIFF : 일(day) 단위의 차이를 구하기 위해 사용DATEDIFF(날짜1, 날짜2) 날짜1 - 날짜2의 일수 차를 구한다.  ② TIMESTAMPDIFF: 지정해준 단위 인자를 기준으로 두 날짜의 차이를 구하기 위해 사용TIMESTAMPDIFF(단위, 날짜1, 날짜2) 날짜1 - 날짜2 = 00(단위)  SECOND : 초MINUTE : 분HOUR : 시간DAY : 일WEEK : 주MONTH : 월QUARTER : 분기YEAR : 연도 ..
[컬럼 만들기] 회원가입 각 단계 전환율 구하기 - SQL Challenge 세션 과제2 과제 2. 회원가입 전환율 단계별 분석목표: 유저의 계정 생성부터 회원가입 완료까지의 각 단계별 전환율을 24시간 이내에 완료된 경우로 계산.계정 생성 후 이메일 입력 화면 진입률.이메일 입력 화면 진입 후 개인 정보 입력 화면 진입률.개인 정보 입력 화면 진입 후 회원가입 완료 전환율.계정 생성 후 회원가입 완료 전환율.결과: 각 단계별 전환율을 백분율로 산출.과제 설명유저의 계정 생성 (create_user) 후 이메일 입력 화면 진입 (enter_email)률, 이메일 입력 화면 진입 (enter_email) 후 개인 정보 입력 화면(enter_info) 진입률, 개인 정보 입력 화면(enter_info) 진입 후 회원가입 완료 전환율(complete_signup), 유저의 계정 생성 후 회원가입 ..
[SQL] 이동평균을 통해 매출 추이 살펴보기 1. 이동평균이란?N일 동안의 평균 변화의 추이를 보기 위한 값💡 ROWS BETWEEN lower_bound AND upper_bound 예를 들어, ‘ROWS BETWEEN 6 PRECEDING AND CURRENT ROW’는현재 행 포함 이전 6개의 행, 즉 7개의 행을 의미한다.따라서, 7일 동안의 매출액의 평균 추이를 보기 위해서는날짜 별로 GROUP BY를 해준 후, 구매량의 합을 평균내어이를 날짜 순으로 정렬하여 7일씩 끊어서 보면 된다.  SELECT dt ,SUM(purchase_amount) ,AVG(SUM(purchase_amount)) OVER(ORDER BY dt ROWS BETWEEN 6 PRECEDING AND CURRENT..
총량 + 특정 조건 동시에 집계하기 (SUM(CASE WHEN ...)) 96번 - Monthly Transaction (총량 + 특정 조건 집계하기)Table: TransactionsWrite an SQL query to find for each month and country, the number of transactions and their total amount, the number of approved transactions and their total amount.The query result format is in the following example.Input:Transactions table:+------+---------+----------+--------+------------+| id | country | state | amount | tran..
JOIN | ON절과 WHERE절의 차이점 ❗️JOIN - ON절과 WHERE절의 차이점 ON: join 전에 조건을 필터링WHERE : join 후에 조건을 필터링 on 절에 조건을 추가했을 때select *from THEGLORY t left join THEGLORY2 t2 on t.이름=t2.이름 and t.직업 in ('아나운서', '선생님') **조건은 조인을 하는 테이블, 즉 left join 기준 오른쪽 테이블에만 적용됨! where 절에 조건을 추가했을 때select *from THEGLORY t left join THEGLORY2 t2 on t.이름=t2.이름 where 직업 in ('아나운서', '선생님') 참고 문제https://leetcode.com/problems/average-selling-price/ #ON절 (정답)s..
MOD | SQL에서 나머지와 몫 (짝수, 홀수) https://leetcode.com/problems/not-boring-movies/description/더보기Table: Cinema+----------------+----------+| Column Name | Type |+----------------+----------+| id | int || movie | varchar || description | varchar || rating | float |+----------------+----------+id is the primary key (column with unique values) for this table.Each row contains informa..
SQL | JOIN - WHERE절의 위치에 따라 바뀌는 것 1. SQL- JOIN ① 문제인라인 뷰 서브 쿼리 안 WHERE절에서 보너스 1000 미만인 조건을 주고 레프트 조인을 했다. 보너스를 2000이나 받는 토마스도 결과에 포함됐다. ② 원인Bonus 테이블에서 걸러졌던 보너스 1000 이상 직원들이 레프트 조인을 하는 과정에서 Null 값 처리되어 결과에 다시 등장했다. ③ 해결Bonus 테이블과 Employee 테이블을 조인한 후 출력될 결과에 조건절을 주어야 정답이 조회된다. 만약 Bonus 테이블에 Null 값도 포함됐다면 원래 내가 작성한 쿼리도 답이 될 수 있었을 것이다.