aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2021-12-06 11:24:04 +0100
committerLuca Ferrari <fluca1978@gmail.com>2021-12-06 11:24:04 +0100
commit8b5022cf04fb7839cb1c25ec8463e738135fcb41 (patch)
treef67f570b8e1fb67ebcc1a515546178de34cd8db7
parent793bbdfbc76b468219d950485487c2b561a3dff0 (diff)
downloadperlweeklychallenge-club-8b5022cf04fb7839cb1c25ec8463e738135fcb41.tar.gz
perlweeklychallenge-club-8b5022cf04fb7839cb1c25ec8463e738135fcb41.tar.bz2
perlweeklychallenge-club-8b5022cf04fb7839cb1c25ec8463e738135fcb41.zip
Task 1 PostgreSQL done
-rw-r--r--challenge-142/luca-ferrari/postgresql/ch-1.sql20
1 files changed, 20 insertions, 0 deletions
diff --git a/challenge-142/luca-ferrari/postgresql/ch-1.sql b/challenge-142/luca-ferrari/postgresql/ch-1.sql
new file mode 100644
index 0000000000..57de950651
--- /dev/null
+++ b/challenge-142/luca-ferrari/postgresql/ch-1.sql
@@ -0,0 +1,20 @@
+CREATE OR REPLACE FUNCTION
+ f_divisors_last_digit( m int, n int )
+ RETURNS SETOF int
+AS $CODE$
+ WITH RECURSIVE numbers AS (
+ SELECT 1 as num
+ UNION
+ SELECT num + 1
+ FROM numbers
+ WHERE num + 1 <= m )
+ , divisors AS (
+ SELECT num as div
+ FROM numbers
+ WHERE m % num = 0 )
+ SELECT count(*)
+ FROM divisors
+ WHERE div::text LIKE ( '%' || n::text );
+
+ $CODE$
+ LANGUAGE sql;