[코딩테스트]/[SQL]

[StrataScratch - SQL] (Medium) New Products

잰잰' 2025. 5. 8. 12:03

문제

2020년과 2019년을 비교하여 회사별 출시된 제품 수의 순변화를 계산하십시오. 출력에는 회사 이름과 순차이가 포함되어야 합니다.
(순차이 = 2020년에 출시된 제품 수 - 2019년에 출시된 제품 수.)

 

테이블설명

 

예상결과

 

✏️ 풀이

# 풀이1 #
SELECT company_name,
    SUM(IF(year = 2020, 1, 0)) - SUM(IF(year = 2019, 1, 0)) AS total_launch
FROM car_launches
GROUP BY 1;

# 풀이2 #
SELECT company_name,
    SUM(CASE WHEN year = 2020 THEN 1 ELSE 0 END) - SUM(CASE WHEN year = 2019 THEN 1 ELSE 0 END) AS total_launch
FROM car_launches
GROUP BY 1;

# 다른 풀이 #
WITH launches AS (
    SELECT company_name,
           year
    FROM car_launches
)

SELECT company_name,
       COUNT(CASE WHEN year = 2020 THEN 1 END) - COUNT(CASE WHEN year = 2019 THEN 1 END) AS total_launch
FROM launches
GROUP BY company_name;

1. company_name 으로 group by

2. if문 혹은 case문을 통해 2020년도와 2019년도의 개수를 각각 구해서 빼줌