diff options
| author | Luca Ferrari <fluca1978@gmail.com> | 2022-01-03 18:50:31 +0100 |
|---|---|---|
| committer | Luca Ferrari <fluca1978@gmail.com> | 2022-01-03 18:50:31 +0100 |
| commit | 5e7d8c8bc6f4d63a8cf3ad993b478492621bfb0c (patch) | |
| tree | 2a6ec8a7266f221b6acfed13cbb28ed2fead9d1f | |
| parent | 03b7084ad8cf90efa0d3b4a3c2066a87b9db8ae1 (diff) | |
| download | perlweeklychallenge-club-5e7d8c8bc6f4d63a8cf3ad993b478492621bfb0c.tar.gz perlweeklychallenge-club-5e7d8c8bc6f4d63a8cf3ad993b478492621bfb0c.tar.bz2 perlweeklychallenge-club-5e7d8c8bc6f4d63a8cf3ad993b478492621bfb0c.zip | |
Task 1 done in PostgreSQL
| -rw-r--r-- | challenge-146/luca-ferrari/postgresql/ch-1.sql | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/challenge-146/luca-ferrari/postgresql/ch-1.sql b/challenge-146/luca-ferrari/postgresql/ch-1.sql new file mode 100644 index 0000000000..766cf944f0 --- /dev/null +++ b/challenge-146/luca-ferrari/postgresql/ch-1.sql @@ -0,0 +1,32 @@ +CREATE OR REPLACE FUNCTION +f_is_prime( val int ) +RETURNS bool +AS $CODE$ +DECLARE + i int; +BEGIN + IF val <= 0 THEN + RAISE EXCEPTION 'Cannot use a number less than 1!'; + END IF; + + FOR i IN 2 .. ( val - 1 ) LOOP + IF val % i = 0 THEN + RETURN false; + END IF; + END LOOP; + + RETURN true; +END +$CODE$ +LANGUAGE plpgsql; + + +WITH primes AS ( +SELECT n as needle, row_number() OVER( PARTITION BY f_is_prime( n ) ) as idx +FROM generate_series( 1, 10000 ) n +WHERE f_is_prime( n ) +ORDER BY n +) +SELECT * +FROM primes +WHERE idx = 1001; |
