是否可以获得按时间排序、按一组维度分组的前 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
}
}