728x90
< Problem >
소수만 출력하기
링크: https://www.hackerrank.com/challenges/print-prime-numbers/problem
Print Prime Numbers | HackerRank
Print prime numbers.
www.hackerrank.com
< Code >
WITH RECURSIVE CT_COUNT AS (SELECT 2 AS P
UNION ALL
SELECT A.P+1
FROM CT_COUNT A
WHERE A.P < 1000)
SELECT GROUP_CONCAT(P SEPARATOR '&')
FROM CT_COUNT A
WHERE NOT EXISTS (SELECT 1
FROM CT_COUNT B
WHERE A.P % B.P = 0 AND A.P != B.P)
< Lesson & Learned >
WITH RECURSIVE: 가상 테이블을 만드는 구문. 가상 테이블을 생성하면서 가상 테이블 자신의 값을 참조하여 값을 결정할 때 사용된다. 생성된 가상 테이블은 해당 쿼리문 내에서 여러 번 참조가 가능하다.
UNION: 두 개의 쿼리를 연속으로 추력, 두 개의 쿼리가 조회하는 칼럼의 개수와 데이터의 형식이 같아야 조회가 가능함. 중복 허용시에는 UNION ALL 사용
SELECT: 키워드와 함께 검색하고 싶은 속성의 이름을 나열
FROM: 키워드와 함께 검색하고 싶은 속성이 있는 데이블의 이름을 나열
WHERE: 키워드와 함께 비교 연산자(=, <, >=, <>)와 논리 연산자(AND, OR, NOT)를 이용한 검색 조건 제시
GROUP_CONCAT(a SEPARATOR 'b'): a에 구분자 b를 붙여 출력해준다. 구분자의 기본값은 쉼표(,)
NOT EXISTS(조건): 주어진 조건 비만족시 TRUE 결과를 출력한다.
728x90
'SQL > [HackerRank]' 카테고리의 다른 글
[HackerRank/MySQL] Draw The Triangle 2 (0) | 2023.04.25 |
---|---|
[HackerRank/MySQL] Draw The Triangle 1 (0) | 2023.04.25 |
[HackerRank/MySQL] 15 Days of Learning SQL (0) | 2023.04.25 |
[HackerRank/MySQL] Interviews (0) | 2023.04.25 |
[HackerRank/MySQL] Symmetric Pairs (0) | 2023.04.14 |