我如何在SQL Alchemy中表达这个查询
我正在尝试查询一个已经存在的sqlite数据库中的表格。首先,我需要根据用户输入来筛选数据:
query(Data.num == input)
接着,我想在这个筛选后的数据中找到另一个字段:日期的最大值和最小值。
我试过使用func.min和func.max,还有union,但出现了错误,提示说列不匹配。这里的问题之一是func.min和func.max需要作为查询的参数使用,而不是用来过滤数据。
ids = session.query(Data).filter(Data.num == input)
q = session.query(func.max(Data.date),
func.min(Data.date))
ids.union(q).all()
ArgumentError: All selectables passed to CompoundSelect must have identical numbers of columns; select #1 has 12 columns, select #2 has 2
同样,如果我分别使用func.max和min,错误提示说#2只有1列。
我觉得看看这个SQL查询可能会有帮助。
谢谢
1 个回答
0
下面这个解决方案是可行的。你首先需要设置查询条件,然后再对数据进行筛选。
query = session.query(Data.num, func.min(Data.date),
func.max(Data.date), Data.date)
query = query.filter(Data.num == input)
query = query.all()