2

是否可以获得按时间排序、按一组维度分组的前 X 条记录?

例子:

这是一个虚构的例子,旨在简单地说明问题。

给定以下格式的数据源,如何获取最近 10 人的购买,以及他们最近的购买金额和产品名称?

所以结果是 10 个独特的人,以及他们最近的购买金额和产品名称。

数据源架构:

purchases
-----------------------------------------------------------------
timestamp   first_name    last_name   customer_id  product_name  purchase_amount

我尝试过的事情:

选择查询

这不会进行任何分组,但会按时间对最近的 10 条记录进行排序。问题是它们不是唯一的。

{
  "context": {
    "timeout": 8000
  },
  "queryType": "select",
  "dataSource": "purchases",
  "granularity": "all",
  "intervals": [ "2017-04-01T00:00:00.000Z/2017-04-23T00:00:00.000Z" ],
  "descending": "true",
  "pagingSpec": { "pageIdentifiers": {}, "threshold": 10 }
}

分组查询

这按所有维度和指标进行分组,而不是仅按 first_name、last_name、customer_id 分组 - 然后采用最新的 product_name 和 purchase_amount。

因此,您将有 10 条记录,但它们不会是 10 个独特的人。仅列出了 10 种独特的指标和维度组合。

也不是按时间排序的。

{
  "queryType": "groupBy",
  "dataSource": "purchases",
  "granularity": "all",
  "intervals": [ "2017-04-01T00:00:00.000Z/2017-04-23T00:00:00.000Z" ],
  "dimensions": [
    "first_name",
    "last_name",
    "customer_id",
    "product_name"
  ],
  "metrics": [
    "purchase_amount"
  ],
  "limitSpec": { 
    "type": "default", 
    "limit": 10
  }
}
4

0 回答 0