링크
https://www.hackerrank.com/challenges/print-prime-numbers/problem
문제
정답
with recursive tmp as (
select 2 as num
union all
select num + 1
from tmp
where num < 1000
), prime as (
select t1.num
from tmp as t1
join tmp as t2 on t1.num > t2.num and t1.num % t2.num = 0
)
select group_concat(num separator '&') as numbers
from tmp
where num not in (select num
from prime)
새롭게 이해한 내용
- with recursive 절: 재귀(자기 자신을 참조하는 것)적 CTE 정의하여 숫자 2부터 1000까지 있는 tmp 컬럼을 생성
- 1000 이하의 숫자 중 소수가 아닌 수를 정의하여 prime 임시 테이블로 추출
- group_concat으로 &으로 구분
- where로 소수인 경우만 추출
'[업무 지식] > MySQL' 카테고리의 다른 글
[QCC] Query Challenge Cycle (0) | 2025.01.03 |
---|---|
[recursive] Draw The Triangle (0) | 2024.12.12 |
[날짜 그룹화] SQL Project Planning (0) | 2024.12.03 |
[MAX() over()] Challenges (0) | 2024.11.29 |
[row index] Weather Observation Station 20 (0) | 2024.11.25 |