Użycie pól obliczeniowych w schemacie

Za pomocą właściwości pola formula możesz dodawać pola obliczeniowe do schemat oprogramowania sprzęgającego.

Pełną listę funkcji, które są obsługiwane w formułach, znajdziesz na stronie Lista funkcji. Ponadto udostępniamy dokumentację dotyczącą:

.

Gdy odwołujesz się w formule do elementu ID z innego pola, poprzedź go ciągiem $. Dla: Jeśli na przykład pole ID to t_celsius, powinno ono mieć nazwę $t_celsius w formule.

Type w polach obliczeniowych

Pole Type jest obsługiwane w polach obliczeniowych, ale wynik formuły musi: ma format zgodny z oczekiwanym formatem dla tego elementu (Type).

Na przykład w przypadku formuły:

"HYPERLINK($url, $description)"

Wartość Type powinna być wartością HYPERLINK.

aggregation w polach obliczeniowych

Jeśli formuła obejmuje agregację, pole aggregation powinno mieć wartość AUTO Sprawdź kolumnę type na liście funkcji, aby zobaczyć, czy funkcja zwraca agregację. Jeśli formuła nie obejmuje agregacji, ustaw ją do NONE.

Formuła aggregation
"SUM($cost) / SUM($units)" AUTO
"$cost + $units" NONE

Przykłady pól obliczeniowych w schemacie

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() };
}