以客戶customer為例
我想查詢每日的客戶數。
先按照日期分桶,然后在桶內按照 姓名來去重 來計算客戶數(實際會按照客戶id 來區分客戶)
測試數據見 文章末尾
一共是9條數據, 名字分別為:
river Lucy 1 Lucy frank tom lily lily tom tom
不同的名字是 6 個。
我想查詢每日的客戶數。
先按照日期分桶,然后在桶內按照 姓名來去重 來計算客戶數(實際會按照客戶id 來區分客戶)
測試數據見 文章末尾
一共是9條數據, 名字分別為:
river Lucy 1 Lucy frank tom lily lily tom tom
不同的名字是 6 個。
先看看 es 的 query 怎么寫
{ "size" : 0, "aggs" : { "days" : { "date_histogram": { "field": "createTime", "interval": "day" }, "aggs": { "distinct_name" : { "cardinality" : { "field" : "firstName" } } } } } }
查詢結果為:
{ "took": 0, "timed_out": false, "_shards": { "total": 2, "successful": 2, "skipped": 0, "failed": 0 }, "hits": { "total": 9, "max_score": 0, "hits": [] }, "aggregations": { "days": { "buckets": [ { "key_as_string": "2019-04-10 00:00:00", "key": 1554854400000, "doc_count": 9, "distinct_name": { "value": 6 } } ] } } }