通常统计一定时间范围内,每隔多少时间间隔的统计数,以实现图表类的展示;
在ES中,提供直方图统计,会自动填充没有数据的月份数据,而在pg数据库中,一般的根据时间group by 统计是不会返回没有数据的时间段,展示图表的时候就会不连续,被测试和项目经理诟病,so咱想方法,网搜,广捞...
一、Elasticsearch中使用date_histogram 聚合函数
{
"size":0,
"aggs": {
"sales": {
"date_histogram": {//按照日期时间聚合分析数据
"field": "time",//分析的字段
"calendar_interval": "day",//按天间隔,有second,minute,hour,week,month,quarter,year
"format": "yyyy-MM-dd HH:mm:ss",//日期格式
"min_doc_count": 0,// 设定每个聚合区间的数量>=0的才返回
"extended_bounds":{//强制返回的日期区间;如果不加这个就只返回有数据的区间
"min":"2021-11-01",
"max":"2021-12-01"
}
}
}
}
}
查询结果如下: