문제1
출처 : Actors and Directors Who Cooperated At Least Three Times - LeetCode
세번이상 만난 배우와, 감독 찾기
풀이(MYSQL)
select actor_id ,director_id
from ActorDirector
group by actor_id ,director_id
having count(*) >=3
문제2
출처 : User Activity for the Past 30 Days I - LeetCode
2019-07-27을 포함하여 30일 전날까지 일별 활성화고객을 날짜별로 조회하라
풀이(MYSQL)
select activity_date as 'day' , count(distinct(user_id)) as 'active_users'
from Activity
where activity_date between DATE_SUB('2019-07-27', INTERVAL 29 day) and '2019-07-27'
group by activity_date
- where : 방문 날짜가 2019-07-27에서 29일 뺀 날짜 사이에 있는 경우 필터링 해서
- group by, select : 날짜별로 방문한 고유 유저의 수를 집계
- 날짜를 쓸때에는 문자처럼 ' ' 사용
- 날짜 빼기 : DATE_SUB(기준 날짜, INTERVAL )
- DATE_SUB를 통해 27일에서 30일 빼면 6월 27일부터 계산이 된다, 이 경우 '6월 27일' <= 날짜 <= '7월 27일' 이 적용 되는데(총 31일 기간) 문제에서는 6월 27일을 포함한 30일 기간이니까 '6월 28일' <= 날짜 <= '7월 27일'을 해줘야 한다 > 즉, 30일을 뺴는게 아니라 29일을 빼줘야 한다
'문제풀이 > SQL(My sql)' 카테고리의 다른 글
[문제풀이] Leet code - Odd and Even Transactions (0) | 2024.08.14 |
---|---|
[문제풀이] Leet code - Last Person to Fit in the Bus (0) | 2024.08.13 |
[문제풀이] Leet code - Immediate Food Delivery II (0) | 2024.08.13 |
[문제풀이] Leet code - easy (0) | 2024.08.08 |
[문제풀이] Leet code - Sales Person (0) | 2024.08.07 |