aboutsummaryrefslogtreecommitdiff
path: root/challenge-260/luca-ferrari/plpgsql/ch-1.sql
blob: 3f6d3cdaa657ce46d9f33b48b6b984b9247f07c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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;