데이터베이스를 조회해 2012년 이후 출시된 게임들 중 둘 이상의 메이저 플랫폼 계열에 출시된 게임 이름을 출력하는 쿼리를 작성해주세요
쿼리 결과에는 아래 컬럼만 포함되어 있어야 하고, 중복된 게임은 1번만 출력
개별 게임의 정보는 games 테이블에 있고, 게임 플랫폼 정보는 platforms 테이블에 저장
하나의 게임이 여러 플랫폼에 출시된 경우, games 테이블에는 이름은 같고 플랫폼 정보는 다른 레코드가 여러개 있는 형태로 저장되어 있음
- 다양한 게임 플랫폼이 존재하지만, 제작사가 같은 플랫폼 들은 같은 계열의 플랫폼으로 분류
Sony: 'PS3', 'PS4', 'PSP', 'PSV'
Nintendo: 'Wii', 'WiiU', 'DS', '3DS'
Microsoft: 'X360', 'XONE'
with platforms_n as (
select *,
case
-- 플랫폼별 해당하는 계열 새로운 컬럼에 할당
when name in ('PS3', 'PS4', 'PSP', 'PSV') then 'Sony'
when name in ('Wii', 'WiiU', 'DS', '3DS') then 'Nintendo'
when name in ('X360', 'XONE') then 'Microsoft'
else 'Others' end as 'Category'
from platforms ),
t1 as (
-- 2012년 이후면서 메이저 플랫폼만 출력
select *
from games g right join platforms_n p on g.platform_id = p.platform_id
where year>=2012 and Category not in ('Others')
)
-- 둘 이상의 메이저 플랫폼
select distinct name from t1 group by name having count(distinct Category)>=2;
