我对 ORM SQLAlchemy 的查询有疑问。
我需要这样写子查询
SELECT DISTINCT ON (e.type) e.type AS e_type, e.num AS e_num
FROM e ORDER BY e.type
通过 ORM SQLAlchemy,但是当我.subquery().alias("q")
在查询中使用时,DISTINCT ON
被编译为DISTINCT
. 为什么以及如何解决它?
没有 .subquery():
db.session.query(E.type, E.num).distinct(E.type).order_by(E.type)
编译为
SELECT DISTINCT ON (e.type) e.type AS e_type, e.num AS e_num FROM e ORDER BY e.type
使用 .subquery():
db.session.query(E.type, E.num).distinct(E.type).order_by(E.type).subquery().alias("q")
编译为
SELECT DISTINCT e.type AS e_type, e.num AS e_num FROM e ORDER BY e.type