我拥有当前数据集
所以我写了一个查询,在其中我将术语搜索放在Code = 110上。我需要做的是根据Rank排序的Phone进行重复数据删除。
在SQL中,将使用row_number() over (partition by Phone order by Rank) as Dedup
进行cte,然后获取所有记录where Dedup = 1
。结果应如下所示:
现在我尝试用过滤器聚合编写一个弹性查询,但是我需要在查询中指定过滤器项,电话:
"aggs" : {
"phoneDedup" : {
"filter" : { "term": { "phone": "????" } },
"aggs" : {
"min_rank" : { "min" : { "field" : "rank" } }
}
}
}
我需要能够提取数据,分页。完整的数据集有7-8百万行。 我需要的是翻译为该SQL查询
with cte as (
select
Row_Nr,Code,Phone,Rank
,row_number() over (partition by Phone order by Rank) as row
from TABLE_INDEX where Code='110'
)
select * from cte where row =1
有什么想法吗?