aboutsummaryrefslogtreecommitdiff
path: root/challenge-260/luca-ferrari/plpgsql/ch-1.sql
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2024-03-11 11:11:03 +0100
committerLuca Ferrari <fluca1978@gmail.com>2024-03-12 11:07:40 +0100
commitdbe495712e34674a941fb1c17e0cd5bca5c55ae4 (patch)
tree789f1f32ad28e05632b3479ddede95b5d25a9037 /challenge-260/luca-ferrari/plpgsql/ch-1.sql
parent8d8f9f052114a2b03b2b652a70ef4e75428f8239 (diff)
downloadperlweeklychallenge-club-dbe495712e34674a941fb1c17e0cd5bca5c55ae4.tar.gz
perlweeklychallenge-club-dbe495712e34674a941fb1c17e0cd5bca5c55ae4.tar.bz2
perlweeklychallenge-club-dbe495712e34674a941fb1c17e0cd5bca5c55ae4.zip
PWC 260
Task 1 Raku done Task 2 Raku done Task 1 PL/Perl done Task 2 PL/Perl done Task 1 PL/PgSQL done Task 2 PL/PgSQL done Task 1 Python done Task 2 Python done Task 1 PL/Java done Task 2 PL/Java done
Diffstat (limited to 'challenge-260/luca-ferrari/plpgsql/ch-1.sql')
-rw-r--r--challenge-260/luca-ferrari/plpgsql/ch-1.sql34
1 files changed, 34 insertions, 0 deletions
diff --git a/challenge-260/luca-ferrari/plpgsql/ch-1.sql b/challenge-260/luca-ferrari/plpgsql/ch-1.sql
new file mode 100644
index 0000000000..3f6d3cdaa6
--- /dev/null
+++ b/challenge-260/luca-ferrari/plpgsql/ch-1.sql
@@ -0,0 +1,34 @@
+--
+-- Perl Weekly Challenge 260
+-- Task 1
+-- See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-260>
+--
+
+CREATE SCHEMA IF NOT EXISTS pwc260;
+
+CREATE OR REPLACE FUNCTION
+pwc260.task1_plpgsql( nums int[] )
+RETURNS boolean
+AS $CODE$
+
+ WITH numbers AS (
+ SELECT n
+ FROM unnest( nums ) n
+ )
+ , counting AS (
+ SELECT n, count(*) AS c
+ FROM numbers
+ GROUP BY n
+ )
+ , grouping AS (
+ SELECT c, count(*) AS g
+ FROM counting
+ GROUP BY c
+ )
+ SELECT NOT EXISTS( SELECT g
+ FROM grouping
+ WHERE g > 1
+ );
+
+$CODE$
+LANGUAGE sql;