diff options
| author | Luca Ferrari <fluca1978@gmail.com> | 2023-03-17 12:23:09 +0100 |
|---|---|---|
| committer | Luca Ferrari <fluca1978@gmail.com> | 2023-03-17 12:23:09 +0100 |
| commit | 72f3b81e1bb7cd2720bcb69243e1e4b7585a31f1 (patch) | |
| tree | 619de17ab6680a90b79961d3969d590cd655a4f3 /challenge-208 | |
| parent | 0771e885dba9d95401c32205c3058a9212d1054a (diff) | |
| download | perlweeklychallenge-club-72f3b81e1bb7cd2720bcb69243e1e4b7585a31f1.tar.gz perlweeklychallenge-club-72f3b81e1bb7cd2720bcb69243e1e4b7585a31f1.tar.bz2 perlweeklychallenge-club-72f3b81e1bb7cd2720bcb69243e1e4b7585a31f1.zip | |
Task plpgsql done
Diffstat (limited to 'challenge-208')
| -rw-r--r-- | challenge-208/luca-ferrari/postgresql/ch-2.sql | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/challenge-208/luca-ferrari/postgresql/ch-2.sql b/challenge-208/luca-ferrari/postgresql/ch-2.sql new file mode 100644 index 0000000000..01420d9428 --- /dev/null +++ b/challenge-208/luca-ferrari/postgresql/ch-2.sql @@ -0,0 +1,29 @@ +-- +-- Perl Weekly Challenge 208 +-- Task 2 +-- +-- See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-208/> +-- + +CREATE SCHEMA IF NOT EXISTS pwc208; + +CREATE OR REPLACE FUNCTION +pwc208.task2_plpgsql( l int[] ) +RETURNS TABLE( v int, d text ) +AS $CODE$ + WITH res AS ( + SELECT v, count( vv ) AS c + FROM generate_series( l[1], l[ array_length( l, 1 ) ] ) v + LEFT JOIN unnest( l ) vv ON vv = v + GROUP BY v + ) + SELECT v, 'Duplicated value ' || v + FROM res + WHERE c > 1 + UNION + SELECT v, 'Missing value ' || v + FROM res + WHERE c = 0; + +$CODE$ +LANGUAGE sql; |
