2024-06-08 13:47:53 发布
网友
我有一个用户记录表,我希望看到一些条件满足时的平均值。条件列是布尔值。 在Postgresql中,我可以很容易地将其转换为:
select id, avg(cond::INT) from table group by id;
但在SQLAlchemy中,我找不到任何等价于::INT的东西 如何处理类型转换? 我有
::INT
orm_query(Table.id, func.avg(Table.cond))
当然,这会返回一个错误。
可以使用cast函数将布尔值转换为整数:
cast
from sqlalchemy.sql.expression import cast import sqlalchemy orm_query(Table.id, func.avg(cast(Table.cond, sqlalchemy.Integer)))
<expr>::<type>是标准SQL等价物Postgresql specific syntax,CAST(<expr> AS <type>)。在SQLAlchemy中,可以使用多种方法生成类型转换表达式。在这种情况下,您可以简单地:
<expr>::<type>
CAST(<expr> AS <type>)
orm_query(Table.id, func.avg(Table.cond.cast(Integer)))
另一种选择是使用^{}构造。
可以使用
cast
函数将布尔值转换为整数:<expr>::<type>
是标准SQL等价物Postgresql specific syntax,CAST(<expr> AS <type>)
。在SQLAlchemy中,可以使用多种方法生成类型转换表达式。在这种情况下,您可以简单地:另一种选择是使用^{} 构造。
相关问题 更多 >
编程相关推荐