diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-01-20 09:00:55 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-20 09:00:55 +0000 |
| commit | a09f0d53053cc4cf2ccd96a0a0fccf12fb1addea (patch) | |
| tree | bd01836ebe95148b48234ea47916cb198fe24406 /challenge-148/luca-ferrari/postgresql | |
| parent | 7cf8f31252ae9c14e175eed8c61dccabc132add9 (diff) | |
| parent | a38b1afc9d128849c177bdbfc6f32f0349e8d46b (diff) | |
| download | perlweeklychallenge-club-a09f0d53053cc4cf2ccd96a0a0fccf12fb1addea.tar.gz perlweeklychallenge-club-a09f0d53053cc4cf2ccd96a0a0fccf12fb1addea.tar.bz2 perlweeklychallenge-club-a09f0d53053cc4cf2ccd96a0a0fccf12fb1addea.zip | |
Merge pull request #5544 from fluca1978/PWC148
Pwc148
Diffstat (limited to 'challenge-148/luca-ferrari/postgresql')
| -rw-r--r-- | challenge-148/luca-ferrari/postgresql/ch-1.sql | 18 | ||||
| -rw-r--r-- | challenge-148/luca-ferrari/postgresql/ch-2.sql | 31 |
2 files changed, 49 insertions, 0 deletions
diff --git a/challenge-148/luca-ferrari/postgresql/ch-1.sql b/challenge-148/luca-ferrari/postgresql/ch-1.sql new file mode 100644 index 0000000000..a1782662de --- /dev/null +++ b/challenge-148/luca-ferrari/postgresql/ch-1.sql @@ -0,0 +1,18 @@ + SELECT v + FROM generate_series( 1, 10 ) v + WHERE + v IN ( 2, 4, 6 ) + + UNION + + SELECT v + FROM generate_series( 11, 19 ) v + WHERE v IN ( 12 ) + + UNION + + SELECT v + FROM generate_series( 20, 100 ) v + WHERE + v % 10 IN ( 2, 4, 6 ) + AND ( v / 10 )::int IN ( 3, 4, 5, 6 ); diff --git a/challenge-148/luca-ferrari/postgresql/ch-2.sql b/challenge-148/luca-ferrari/postgresql/ch-2.sql new file mode 100644 index 0000000000..5d178955a1 --- /dev/null +++ b/challenge-148/luca-ferrari/postgresql/ch-2.sql @@ -0,0 +1,31 @@ +WITH RECURSIVE +triplets AS +( + SELECT a::numeric, b::numeric, c::numeric + FROM generate_series( 1, 30 ) a + , generate_series( 1, 30 ) b + , generate_series( 1, 30 ) c + ORDER BY a, b, c +) +, cardano_sum AS +( + SELECT a, b, c, + ( a + b * sqrt( c ) ) AS l + ,( a - b * sqrt( c ) ) AS r + FROM triplets +) +, cardano AS +( + SELECT a, b, c, l, r + , CASE WHEN l < 0 THEN -1 ELSE 1 END * pow( abs( l )::numeric, 1/3::numeric ) + + CASE WHEN r < 0 THEN -1 ELSE 1 END * pow( abs( r )::numeric, 1/3::numeric ) + AS triplet_sum + FROM cardano_sum +) + +SELECT * +FROM cardano +WHERE +abs( 1 - triplet_sum::numeric ) <= 0.0000000001 +LIMIT 5 +; |
