aboutsummaryrefslogtreecommitdiff
path: root/challenge-255/luca-ferrari/plpgsql/ch-2.sql
blob: 33f80c3ddd3103cfeacde6f52ee0fa9ee2a30d33 (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
35
--
-- Perl Weekly Challenge 255
-- Task 2
-- See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-255>
--

CREATE SCHEMA IF NOT EXISTS pwc255;

CREATE OR REPLACE FUNCTION
pwc255.task2_plpgsql( p text, b text )
RETURNS SETOF text
AS $CODE$
DECLARE

BEGIN
	CREATE TEMPORARY TABLE IF NOT EXISTS classification( w text );
	TRUNCATE TABLE classification;

	INSERT INTO classification
	SELECT v
	FROM regexp_split_to_table( p, '\W+' ) v;

	RETURN QUERY
	       SELECT w FROM (
	       	 SELECT w, count(*) AS c
	       	 FROM classification
	       	 WHERE w <> b
	       	 GROUP BY w
	       	 ORDER BY c DESC
	       	 LIMIT 1
	       );

END
$CODE$
LANGUAGE plpgsql;