https://solvesql.com/problems/find-steadyseller-writers/
-- Fiction 장르의 책을 저자별로 연속 출판된 최소 5권 이상의 시리즈를 확인
WITH dist AS (
-- Fiction 장르의 중복되지 않은 저자와 출판 연도를 가져오는 임시 테이블
SELECT DISTINCT
author, -- 저자 이름
year -- 출판 연도
FROM
books -- 책 정보 테이블
WHERE
genre = 'Fiction' -- Fiction 장르만 필터링
),
d AS (
-- 저자별 연도 간의 규칙성을 확인하기 위한 임시 테이블
SELECT
author, -- 저자 이름
year, -- 출판 연도
year - ROW_NUMBER() OVER (
PARTITION BY author
ORDER BY year
) AS dep -- 연속된 출판 연도의 차이를 기준으로 그룹화할 수 있는 열 (연속될 경우 같은 값이 나옴)
FROM
dist -- 중복 제거된 Fiction 책 목록
)
SELECT
author, -- 저자 이름
MAX(year) AS year, -- 해당 저자의 마지막 출판 연도
COUNT(*) AS depth -- 연속 출판된 책의 개수
FROM
d -- 저자별 연도 차이를 계산한 데이터
GROUP BY
author, -- 저자 이름
dep -- 연속 출판 여부를 결정하는 그룹화 기준
HAVING
COUNT(*) >= 5 -- 연속 출판된 책의 개수가 5권 이상인 경우만 필터링
'SQL' 카테고리의 다른 글
[solvesql - day 18] 펭귄 날개와 몸무게의 상관 계수 (0) | 2025.01.11 |
---|---|
[solvesql - day 17] 멀티 플랫폼 게임 찾기 (0) | 2025.01.11 |
[solvesql - day 15] 폐쇄할 따릉이 정류소 찾기 2 (0) | 2025.01.11 |
[solvesql - day 14] 전력 소비량 이동 평균 구하기 (0) | 2025.01.11 |
[solvesql - day 13] 게임 개발사의 주력 플랫폼 찾기 (0) | 2025.01.11 |