MCPcopy Index your code
hub / github.com/analyticswithadam/App_Script / fetchBigQueryData

Function fetchBigQueryData

Data to Narrative with Input.js:52–91  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

50
51
52function fetchBigQueryData() {
53 var input = pullVariables()
54 Logger.log(input);
55 var projectId = project;
56
57 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 = '${input.var3}' AND city = '${input.var4}' Group by ALL Order BY 5 desc;`
58
59 var request = {
60 query: query,
61 useLegacySql: false
62 };
63
64 var queryResults = BigQuery.Jobs.query(request, projectId);
65 var jobId = queryResults.jobReference.jobId;
66
67 var results = BigQuery.Jobs.getQueryResults(projectId, jobId);
68 var rows = results.rows;
69
70 var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('RawData');
71 if (!sheet) {
72 sheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet('RawData');
73 } else {
74 sheet.clear();
75 }
76
77 // Set headers
78 var headers = results.schema.fields.map(field => field.name);
79 sheet.appendRow(headers);
80 var headerRange = sheet.getRange(1, 1, 1, headers.length);
81 headerRange.setBackground('#000000').setFontColor('#FFFFFF').setFontWeight('bold');
82
83 // Set Rows
84 var values = rows.map(row => row.f.map(cell => cell.v));
85 // Get the next empty row in the sheet
86 var lastRow = sheet.getLastRow();
87 // Append all rows at once
88 if (values.length > 0) {
89 sheet.getRange(lastRow + 1, 1, values.length, values[0].length).setValues(values);
90 }
91}
92
93function formatReport() {
94 auth();

Callers 1

generateReportFunction · 0.70

Calls 1

pullVariablesFunction · 0.70

Tested by

no test coverage detected