Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- 자연어처리
- paper review
- ChatGPT
- deepseek
- 백준
- NLP
- ABAE
- LLM
- 코딩테스트
- 그래프
- Aspect
- 논문리뷰
- 프로그래머스
- GPT
- dfs
- 분산
- 가상환경
- 파이썬
- outer join
- join
- SQL 첫걸음
- Bert
- 알고리즘
- 연구
- SQL
- transformer
- 머신러닝
- MySQL
- leetcode
- gpt1
Archives
- Today
- Total
huginn muninn
[leetcode] 550. Game Play Analysis IV 문제 풀이와 윈도우 함수를 사용할 수 있는 위치 본문
https://leetcode.com/problems/game-play-analysis-iv/description/
2일 연속으로 플레이한 유저수의 비율을 구하는 문제.

# Write your MySQL query statement below
-- 처음 로그인 한 다음날 다시 로그인한 플레이어의 비율을 소수점 2자리로
-- 첫번째 로그인 날짜부터 최소. 2일 연속으로 로그인한 플레이어 수를 계산한다음 전체 플레이 수로 나누어야 함
WITH NEXT AS(
SELECT
PLAYER_ID,
DATEDIFF(EVENT_DATE,MIN(EVENT_DATE) OVER(PARTITION BY PLAYER_ID))=1 AS CONNECT
FROM ACTIVITY
)
SELECT
ROUND(SUM(CONNECT)/COUNT(DISTINCT PLAYER_ID),2) AS FRACTION
FROM NEXT
최초로 로그인한 event_date와의 차이가 1인 것을 찾아주면 된다. 그리고 주의할 것은 전체 유저수를 셀때 중복된 유저수는 제외하고 세야한다는 것을 잊지 말자!!
window 함수
위 문제에서 min() over(partitioin by~) 윈도우 함수를 통해 최초 로그인 날짜를 구해주었다. 윈도우 함수를 사용할 때. 사용가능한 위치가 있고 사용하지 못하는 위치가 있다.
윈도우 함수는 SELECT, GROUP BY, ORDER BY, HAVING, WITH 절에서 사용할 수 있지만, WHERE 절과 FROM 절에서는 사용할 수 없다.
- SELECT 절: 윈도우 함수는 SELECT 절에서 사용할 수 있다. 이를 통해 윈도우 함수의 결과를 출력할 수 있다.
- WHERE 절: 윈도우 함수는 WHERE 절에서 사용할 수 없다. WHERE 절은 행 단위로 필터링하기 때문에 윈도우 함수를 사용할 수 없다.
- GROUP BY 절: 윈도우 함수는 GROUP BY 절에서 사용할 수 있다. 이를 통해 그룹 내에서 윈도우 함수를 적용할 수 있다.
- ORDER BY 절: 윈도우 함수는 ORDER BY 절에서 사용할 수 있다. 이를 통해 윈도우 함수의 결과를 정렬할 수 있다.
- HAVING 절: 윈도우 함수는 HAVING 절에서 사용할 수 있다. 이를 통해 윈도우 함수의 결과를 필터링할 수 있다.
- WITH 절(Common Table Expression, CTE): 윈도우 함수는 WITH 절에서 사용할 수 있다. 이를 통해 중간 결과를 만들고 이를 활용할 수 있다.
FROM 절에서는 윈도우 함수를 사용할 수 없다. FROM 절은 데이터 소스를 지정하는 부분이기 때문에 윈도우 함수를 사용할 수 없다.
'코딩테스트' 카테고리의 다른 글
| [프로그래머스] 보호소에서 중성화한 동물 SQL (0) | 2024.06.21 |
|---|---|
| [프로그래머스] 년, 월, 성별 별 상품 구매 회원 수 구하기 SQL (0) | 2024.06.21 |
| [프로그래머스] 연간 평가점수에 해당하는 평가 등급 및 성과금 조회 (0) | 2024.06.19 |
| [프로그래머스] 상품을 구매한 회원 비율 구하기 SQL (0) | 2024.06.14 |
| [프로그래머스] 그룹별 조건에 맞는 식당 목록 출력하기 SQL (1) | 2024.06.13 |