blob: 80971effac2a412a0b429b68668f74c51dfd84fe (
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
36
37
38
39
40
|
--
-- Perl Weekly Challenge 253
-- Task 2
-- See <https://perlweeklychallenge.org/blog/perl-weekly-challenge-253>
--
CREATE SCHEMA IF NOT EXISTS pwc253;
CREATE OR REPLACE FUNCTION
pwc253.task2_plpgsql( matrix int[][] )
RETURNS SETOF int
AS $CODE$
DECLARE
current_row int[];
c_ones int;
BEGIN
CREATE TEMPORARY TABLE IF NOT EXISTS ones( r int, c int );
TRUNCATE ones;
FOR i IN 1 .. array_length( matrix, 1 ) LOOP
c_ones := 0;
FOR j IN 1 .. array_length( matrix, 2 ) LOOP
c_ones := c_ones + matrix[ i ][ j ];
END LOOP;
INSERT INTO ones
SELECT i, c_ones;
END LOOP;
RETURN QUERY
SELECT r
FROM ones
ORDER BY c DESC, r ASC;
RETURN;
END
$CODE$
LANGUAGE plpgsql;
|