我正在尝试使用 SQLAlchemy 根据 postgres 中 JSONB 列中特定键的值总和进行过滤。列格式如下所示:{"key1": {"YYYY-MM": float1, "YYYY-MM": float2}, "key2": {...}...}
。我们目前在查询返回行后执行此过滤,但速度很慢,我们希望优化查询以仅返回我们需要的行。
查询需要对指定日期范围的值求和,如果不是 >, <, >=, <=, ==, !=
,则将其过滤掉。
我希望使用 sqlalchemy sum
函数尽可能干净地完成此操作,但我不确定这是否可行。我还看到了 relationships 的想法,这是可能的,但需要对我们的后端进行大量更改,而我们没有足够的时间。
我没有太多东西可以展示我已经完成的工作,因为我根本无法思考如何去做。
编辑:
Ilja Everilä - 使用 v11.10。一个更具体的数据示例是 {"spend": {"2021-02": 100,"2021-03": 100, "2021-04": 75}}
,请求花费 > 200,日期范围为 2021 年 3 月 - 2021 年 4 月。使用这些过滤器,我们的数据示例将因总和而被过滤掉时间范围内的花费值太小。