Berechnete Felder im Schema verwenden

Mit der Feldeigenschaft formula können Sie dem Schema Ihres Connectors berechnete Felder hinzufügen.

Die vollständige Liste der Funktionen, die in Formeln unterstützt werden, finden Sie in der Funktionsliste. Außerdem gibt es weitere Dokumentationen zu folgenden Themen:

Wenn Sie in einer Formel auf das ID eines anderen Felds verweisen, stellen Sie ihm ein $ voran. Wenn das Feld ID beispielsweise t_celsius ist, sollte es in der Formel als $t_celsius bezeichnet werden.

Type für berechnete Felder

Type wird für berechnete Felder unterstützt, aber die Ausgabe der Formel muss dem erwarteten Format für diese Type entsprechen.

Beispiel für die Formel:

"HYPERLINK($url, $description)"

Der Type sollte HYPERLINK lauten.

aggregation für berechnete Felder

Wenn Ihre Formel eine Aggregation enthält, sollte aggregation auf AUTO festgelegt werden. Prüfen Sie die Spalte type in der Funktionsliste, um zu sehen, ob eine Funktion eine Aggregation zurückgibt. Wenn Ihre Formel keine Aggregation enthält, legen Sie dafür NONE fest.

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

Beispiele für berechnete Felder im Schema

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