Как использовать group by в запросе в скрипте приложения Google - PullRequest
0 голосов
/ 14 апреля 2020

Я делаю запрос в скрипте приложения Google. Я пытаюсь выполнить групповой запрос, но он не получается

var spreadsheetId_2 = '1Z6_d0CaY38VvfPaWi0-5XRRpitKFmy3gMJsHNiMIpiK8[';
var targetSheet_2 = 'Actividades';  
var query_2 = 'select C where K = "WHITE" GROUP BY C ';

var ss_2 = SpreadsheetApp.openById(spreadsheetId_2);
var sheetId_2 = ss_2.getSheetByName(targetSheet_2).getSheetId();
var url_2 = "https://docs.google.com/spreadsheets/d/" + spreadsheetId_2 + "/gviz/tq?gid=" + sheetId_2 + "&tqx=out:csv&tq=" + encodeURIComponent(query_2);
var res_2 = UrlFetchApp.fetch(url_2, {headers: {Authorization: "Bearer " + ScriptApp.getOAuthToken()}});
var row_2 = Utilities.parseCsv(res_2.getContentText());

var maximo_2=row_2.length;
for (var i = 1; i < maximo_2; i++) {   
  var pers =row_2[i][0].toString();
}

Что должно измениться?

1 Ответ

2 голосов
/ 15 апреля 2020
  • Вы хотите получить значения, используя GROUP BY запроса.
  • Вы хотите узнать причину, по которой значения не возвращаются.

Если мой понимание правильно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

Точки модификации:

  • Я думаю, что в вашем запросе возникает ошибка. При этом значения не возвращаются. Так, например, как насчет включения count(C) следующим образом.
    • select C,count(C) where K = "WHITE" GROUP BY C.

Модифицированный скрипт:

Когда ваш скрипт модифицирован, пожалуйста, измените его следующим образом.

From:
var query_2 = 'select C where K = "WHITE" GROUP BY C ';

var ss_2 = SpreadsheetApp.openById(spreadsheetId_2);
var sheetId_2 = ss_2.getSheetByName(targetSheet_2).getSheetId();
var url_2 = "https://docs.google.com/spreadsheets/d/" + spreadsheetId_2 + "/gviz/tq?gid=" + sheetId_2 + "&tqx=out:csv&tq=" + encodeURIComponent(query_2);
var res_2 = UrlFetchApp.fetch(url_2, {headers: {Authorization: "Bearer " + ScriptApp.getOAuthToken()}});
var row_2 = Utilities.parseCsv(res_2.getContentText());
Кому:
var query_2 = 'select C,count(C) where K = "WHITE" GROUP BY C';  // Modified

var ss_2 = SpreadsheetApp.openById(spreadsheetId_2);
var sheetId_2 = ss_2.getSheetByName(targetSheet_2).getSheetId();
var url_2 = "https://docs.google.com/spreadsheets/d/" + spreadsheetId_2 + "/gviz/tq?gid=" + sheetId_2 + "&tqx=out:csv&tq=" + encodeURIComponent(query_2);
var res_2 = UrlFetchApp.fetch(url_2, {headers: {Authorization: "Bearer " + ScriptApp.getOAuthToken()}});
var row_2 = Utilities.parseCsv(res_2.getContentText());

row_2.shift();  // Added

Ссылка:

Если я неправильно понял ваш вопрос, и это было не то направление вы ожидаете, я прошу прощения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...