From dfcd45fef8549247d3103f2acffb7fe2c60f1ab1 Mon Sep 17 00:00:00 2001 From: Luca Ferrari Date: Wed, 19 Jan 2022 14:18:10 +0100 Subject: Task 2 done in PostgreSQL --- challenge-148/luca-ferrari/postgresql/ch-2.sql | 31 ++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 challenge-148/luca-ferrari/postgresql/ch-2.sql 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 +; -- cgit