[코딩테스트]/[SQL]
[StrataScratch - SQL] (Medium) Spam Posts
잰잰'
2025. 5. 29. 11:59
문제
날짜별로 조회된 전체 게시물 중 스팸 게시물의 비율을 계산하십시오. 게시물의 키워드에 문자열 'spam'이 포함되어 있으면 해당 게시물은 스팸으로 간주됩니다. facebook_posts 테이블은 사용자가 게시한 모든 게시물을 저장합니다. facebook_post_views 테이블은 사용자가 게시물을 조회했는지를 나타내는 액션 테이블입니다.
테이블설명
예상결과
✏️ 풀이
WITH cnt_post AS (
SELECT post_date, COUNT(viewer_id) AS cnt_p
FROM facebook_posts p
JOIN facebook_post_views v ON p.post_id = v.post_id
GROUP BY 1
), cnt_spam AS (
SELECT post_date, COUNT(CASE
WHEN post_keywords LIKE '%spam%' THEN p.post_id
END) AS cnt_s
FROM facebook_posts AS p
JOIN facebook_post_views AS c ON p.post_id = c.post_id
GROUP BY 1
)
SELECT p.post_date, (cnt_s / cnt_p) * 100 AS spam_share
FROM cnt_post AS p
JOIN cnt_spam AS s ON p.post_date = s.post_date;
1. 전체 게시물 카운트
2. 스팸 게시물 카운트
3. 스팸 게시물 비율 계산