在結構定義中使用計算結果欄位

formula 欄位屬性可用來將計算欄位新增至 連接器結構定義

如需公式所支援的函式完整清單,請前往: 函式清單:此外,還有其他說明文件:

,瞭解如何調查及移除這項存取權。

在公式中參照另一個欄位的 ID 時,請在前面加上 $。適用對象 舉例來說,如果您的欄位 IDt_celsius,這個值應稱為 $t_celsius

Type 代表計算結果欄位

計算結果欄位支援 Type,但公式的輸出結果必須 符合該 Type 的預期格式。

以公式為例:

"HYPERLINK($url, $description)"

Type 應為 HYPERLINK

aggregation 代表計算結果欄位

如果公式涉及匯總,aggregation 應設為 AUTO。查看「函式清單」中的 type 欄,確認是否有函式 就會傳回一個匯總值如果公式與匯總作業無關,請進行設定 至 NONE

公式 aggregation
"SUM($cost) / SUM($units)" AUTO
"$cost + $units" NONE

結構定義中的計算結果欄位範例

function getSchema(request) {
  var cc = DataStudioApp.createCommunityConnector();
  var fields = cc.getFields();
  var types = cc.FieldType;
  var aggregations = cc.AggregationType;

  fields.newDimension()
      .setId('date')
      .setName('Date')
      .setDescription('Date of measurement')
      .setType(types.YEAR_MONTH_DAY);

  fields.newMetric()
      .setId('t_celsius')
      .setName('Temperature (Celsius)')
      .setDescription('Temperature in Celsius')
      .setType(types.NUMBER)
      .setAggregation(aggregations.NONE);

  fields.newMetric()
      .setId('t_fahrenheit')
      .setName('Temperature (Fahrenheit)')
      .setDescription('Temperature in Fahrenheit')
      .setFormula('$t_celsius / 5 * 9 + 32')
      .setType(types.NUMBER)
      .setAggregation(aggregations.NONE);

  fields.newMetric()
      .setId('average_temperature (Celsius)')
      .setName('Average Temperature (Celsius)')
      .setDescription('Temperature in Fahrenheit')
      .setFormula('AVG($t_celsius)')
      .setType(types.NUMBER)
      .setAggregation(aggregations.AUTO);

  fields.newMetric()
      .setId('average_temperature (Celsius)')
      .setName('Average Temperature (Celsius)')
      .setDescription('Temperature in Fahrenheit')
      .setFormula('AVG($t_celsius / 5 * 9 + 32)')
      .setType(types.NUMBER)
      .setAggregation(aggregations.AUTO);

  fields.newDimension()
      .setId('feels_like')
      .setName('Feels Like')
      .setDescription('What it feels like outside.')
      .setFormula('CASE WHEN $t_celsius < 0 THEN "Freezing" WHEN $t_celsius > 40 THEN "Too warm" ELSE "Not bad" END')
      .setType(types.TEXT);

  return { 'schema': fields.build() };
}