Друид: использование полей только для наличия / фильтра без вывода их - PullRequest
1 голос
/ 26 октября 2019

У меня есть запрос, который вычисляет для каждого user_id последнее значение и максимальное значение, затем выполняет некоторые вычисления между ними и фильтрует те строки, в которых рассчитанное значение больше 70.

Точкачто запрос возвращает обратно user_id, last, max и вычисленное поле, , и я хочу только user_id , как я могу этого добиться?

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

мой запрос:

{
  "queryType": "groupBy",
  "dataSource": {
    "type": "table",
    "name": "my-datasource"
  },
  "intervals": {
    "type": "intervals",
    "intervals": [
      "${startDate}/${endDate}"
    ]
  },
  "virtualColumns": [],
  "filter": {
    "type": "bound",
    "dimension": "sum_coins",
    "lower": "0",
    "upper": null,
    "lowerStrict": true,
    "upperStrict": false,
    "extractionFn": null,
    "ordering": {
      "type": "numeric"
    }
  },
  "granularity": {
    "type": "all"
  },
  "dimensions": [
    {
      "type": "default",
      "dimension": "user_id",
      "outputName": "d0",
      "outputType": "STRING"
    }
  ],
  "aggregations": [
    {
      "type": "doubleLast",
      "name": "last_coins",
      "fieldName": "sum_coins",
      "expression": null
    },
    {
      "type": "doubleMax",
      "name": "max_sum_coins",
      "fieldName": "sum_coins",
      "expression": null
    }
  ],
  "postAggregations": [
    {
      "type": "expression",
      "name": "drop_percentage",
      "expression": "(100-(\"last_coins\" / \"max_sum_coins\"*100))",
      "ordering": null
    }],
  "having": {
    "type": "filter",
    "filter": {
      "type": "bound",
      "dimension": "drop_percentage",
      "lower": "70",
      "upper": null,
      "lowerStrict": true,
      "upperStrict": false,
      "extractionFn": null,
      "ordering": {
        "type": "numeric"
      }
    },
    "finalize": true
  },
  "limitSpec": {
    "type": "NoopLimitSpec"
  },
  "context": {
    "sqlQueryId": "34ab9e888"
  },
  "descending": false
}
...