aboutsummaryrefslogtreecommitdiff
path: root/challenge-148/luca-ferrari/postgresql/ch-2.sql
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-01-20 09:00:55 +0000
committerGitHub <noreply@github.com>2022-01-20 09:00:55 +0000
commita09f0d53053cc4cf2ccd96a0a0fccf12fb1addea (patch)
treebd01836ebe95148b48234ea47916cb198fe24406 /challenge-148/luca-ferrari/postgresql/ch-2.sql
parent7cf8f31252ae9c14e175eed8c61dccabc132add9 (diff)
parenta38b1afc9d128849c177bdbfc6f32f0349e8d46b (diff)
downloadperlweeklychallenge-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/ch-2.sql')
-rw-r--r--challenge-148/luca-ferrari/postgresql/ch-2.sql31
1 files changed, 31 insertions, 0 deletions
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
+;