データアナリストのメモ帳

データアナリストのメモ帳

IT企業で働くデータアナリストのブログ

【SQL】BigQueryで素数の列を生成してみる

暇だったのでBigQueryで1000以下の素数の列を作りました。
素数の列がほしい時に使ってください。 NOT EXISTを使うのがポイントです!

WITH Numbers AS (
SELECT
  num 
FROM UNNEST(GENERATE_ARRAY(1, 1000)) AS num 
ORDER BY num)

SELECT 
  N1.num AS primeNumber
FROM 
  Numbers AS N1
WHERE
  N1.num > 1
  AND
    NOT EXISTS(
      SELECT 
        *
      FROM 
        Numbers AS N2
      WHERE 
        N1.num >= N2.num * N2.num
        AND N2.num > 1
        AND MOD(N1.num, N2.num) = 0);