From 5163b921398ee29a8010c164a17af05268ac8639 Mon Sep 17 00:00:00 2001 From: Harm te Molder Date: Tue, 15 Dec 2020 07:42:36 -0300 Subject: [PATCH 1/2] Fix pivot.sql --- util/pivot.sql | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/util/pivot.sql b/util/pivot.sql index be96e28..d39347e 100644 --- a/util/pivot.sql +++ b/util/pivot.sql @@ -1,8 +1,8 @@ -CREATE OR REPLACE FUNCTION +CREATE OR REPLACE FUNCTION `fhoffa.x.normalize_col_name`(col_name STRING) AS ( - REGEXP_REPLACE(col_name,r'[/+#|]', '_' -) - + REGEXP_REPLACE(col_name,r'[/+#|]', '_') +); + CREATE OR REPLACE PROCEDURE `fhoffa.x.pivot`( table_name STRING , destination_table STRING @@ -15,15 +15,15 @@ CREATE OR REPLACE PROCEDURE `fhoffa.x.pivot`( ) BEGIN DECLARE pivotter STRING; - + EXECUTE IMMEDIATE ( "SELECT STRING_AGG(' "||aggregation ||"""(IF('||@pivot_col_name||'="'||x.value||'", '||@pivot_col_value||', null)) e_'||fhoffa.x.normalize_col_name(x.value)) FROM UNNEST(( SELECT APPROX_TOP_COUNT("""||pivot_col_name||", @max_columns) FROM `"||table_name||"`)) x" - ) INTO pivotter + ) INTO pivotter USING pivot_col_name AS pivot_col_name, pivot_col_value AS pivot_col_value, max_columns AS max_columns; - + EXECUTE IMMEDIATE ( 'CREATE OR REPLACE TABLE `'||destination_table ||'` AS SELECT ' From 3586cdaa02926a919b771f54e01beb468ab567a2 Mon Sep 17 00:00:00 2001 From: Harm te Molder Date: Tue, 15 Dec 2020 08:02:52 -0300 Subject: [PATCH 2/2] Add backticks to function call --- util/pivot.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/pivot.sql b/util/pivot.sql index d39347e..9dd3d32 100644 --- a/util/pivot.sql +++ b/util/pivot.sql @@ -18,7 +18,7 @@ BEGIN EXECUTE IMMEDIATE ( "SELECT STRING_AGG(' "||aggregation - ||"""(IF('||@pivot_col_name||'="'||x.value||'", '||@pivot_col_value||', null)) e_'||fhoffa.x.normalize_col_name(x.value)) + ||"""(IF('||@pivot_col_name||'="'||x.value||'", '||@pivot_col_value||', null)) e_'||`fhoffa.x.normalize_col_name`(x.value)) FROM UNNEST(( SELECT APPROX_TOP_COUNT("""||pivot_col_name||", @max_columns) FROM `"||table_name||"`)) x" ) INTO pivotter