在 SQLAlchemy 中按小时分组

Grouping by hour in SQLAlchemy

我正在尝试从数据库中获取每小时的平均值。数据如下所示:

我的查询如下所示:

resultset = DBSession.query(dlog.time, 
    func.avg(dlog.value).label("value"),
    func.avg(dlog.minimum).label("minimum"),
    func.avg(dlog.maximum).label("maximum"))\
    .filter(dlog.time >= startObject, dlog.time <= endObject, dpoint.name == n)\
    .group_by(func.date_format(dlog.time, '%H'))\
    .join(dpoint, dpoint.point_id==dlog.point_id)\
    .all()

这个问题是,虽然它获取每小时的平均值,但它也会从 第二天开始对同一小时进行分组。 所以如果我想要两天的数据每小时分组(48 小时 48 项),我得到 1 天的数据,其中 2 天的数据分组在一起。

你能试试按天-小时分组作为你的按键分组吗..所以它会把那个小时的所有分钟分组

resultset = DBSession.query(dlog.time, 
func.avg(dlog.value).label("value"),
func.avg(dlog.minimum).label("minimum"),
func.avg(dlog.maximum).label("maximum"))\
.filter(dlog.time >= startObject, dlog.time <= endObject, dpoint.name == n)\
.group_by(func.date_format(dlog.time, '%Y-%M-%D %H'))\
.join(dpoint, dpoint.point_id==dlog.point_id)\
.all()