MCPcopy Create free account
hub / github.com/analyticswithadam/App_Script / fetchBigQueryData

Function fetchBigQueryData

EndtoEndAutomatedDecks.js:75–114  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

73
74
75function fetchBigQueryData() {
76 var input = pullVariables()
77 Logger.log(input);
78 var projectId = project;
79
80 var query = `SELECT extract(year from date) as year, category_name, item_description, vendor_name, COUNT(*) as num_trans, ROUND(SUM(sale_dollars),2) as sales_in_usd, ROUND(SUM(state_bottle_cost * bottles_sold),2) as cost FROM \`bigquery-public-data.iowa_liquor_sales.sales\` Where EXTRACT(year FROM date) IN (${input.var1}, ${input.var2}) AND category_name IN ('${input.var3}','${input.var4}','${input.var5}') AND city = '${input.var6}' Group by ALL Order BY 5 desc;`
81
82 var request = {
83 query: query,
84 useLegacySql: false
85 };
86
87 var queryResults = BigQuery.Jobs.query(request, projectId);
88 var jobId = queryResults.jobReference.jobId;
89
90 var results = BigQuery.Jobs.getQueryResults(projectId, jobId);
91 var rows = results.rows;
92
93 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('RawData');
94 if (!sheet) {
95 sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet('RawData');
96 } else {
97 sheet.clear();
98 }
99
100 // Set headers
101 var headers = results.schema.fields.map(field => field.name);
102 sheet.appendRow(headers);
103 var headerRange = sheet.getRange(1, 1, 1, headers.length);
104 headerRange.setBackground('#000000').setFontColor('#FFFFFF').setFontWeight('bold');
105
106 // Set Rows
107 var values = rows.map(row => row.f.map(cell => cell.v));
108 // Get the next empty row in the sheet
109 var lastRow = sheet.getLastRow();
110 // Append all rows at once
111 if (values.length > 0) {
112 sheet.getRange(lastRow + 1, 1, values.length, values[0].length).setValues(values);
113 }
114}
115
116function formatReport() {
117 auth();

Callers 1

generateReportFunction · 0.70

Calls 1

pullVariablesFunction · 0.70

Tested by

no test coverage detected