banner



How To Draw A Quick Snowflake

Dynamic PIVOTs in SQL with Snowflake

Easy to utilise dynamic pivots in Snowflake: How to use and create a JavaScript stored procedure within.

          select *
from (
select * from table(result_scan(last_query_id(-1)))
)
pivot(max(pivot_value)
for pivot_column in ('Spider-Man', 'Wonder Woman', 'Iron Human'))

How to get dynamic pivots in Snowflake

  1. Write a query that aggregates the data you want to pin. Make sure to ascertain a cavalcade with the pivot_values, and a column with the pivot_columns:
          select proper name
, date_trunc(quarter, month) pivot_column
, sum(month_views) pivot_value
from hero_views
group by 1,ii

          phone call pivot_prev_results();        
          select *
from table(result_scan(last_query_id(-2)));

  1. Query
          select name pivot_column
, date_trunc(quarter, month) month
, sum(month_views) pivot_value
from hero_views
group by 1,two
          call pivot_prev_results();        
          select *
from table(result_scan(last_query_id(-2)));

Creating the stored procedure

Discover the full source lawmaking on GitHub

Cool tricks that brand pivot_prev_results() work:

          create or supplant procedure pivot_prev_results()        
          returns string        
          linguistic communication javascript        
          execute as caller        
          equally
$$
          var cols_query = `
select '\\''
|| listagg(distinct pivot_column, '\\',\\'') within group (order by pivot_column)
|| '\\''
from table(result_scan(last_query_id(-1)))`;
          var stmt1 = snowflake.createStatement({sqlText: cols_query});
var results1 = stmt1.execute();
results1.side by side();
          var col_list = results1.getColumnValue(1);        
          pivot_query = `
select *
from (select * from tabular array(result_scan(last_query_id(-2))))
pivot(max(pivot_value) for pivot_column in (${col_list}))
`
var stmt2 = snowflake.createStatement({sqlText: pivot_query});
stmt2.execute();
          render `select * from table(result_scan('${stmt2.getQueryId()}'));\n select * from tabular array(result_scan(last_query_id(-two)));`;
$$;

Desire more?

Source: https://medium.com/snowflake/dynamic-pivots-in-sql-with-snowflake-c763933987c

Posted by: pantonemenim69.blogspot.com

0 Response to "How To Draw A Quick Snowflake"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel