我需要生成如下查询:
SELECT **DISTINCT ON** (article.code) article.code, article.title
首先,我尝试通过ORM distinct方法创建它并向其发送带字段的列表。但它不会工作。其次,我尝试通过sqlalchemy.sql.select创建它 - 它还生成如下的SQL查询:
SELECT DISTINCT article.code, article.title
我需要SELECT **DISTINCT ON** (article.code)
...
我查看了源代码,并在sqlalchemy.dialects.postgresql.base.PGCompiler.get_select_precolumns
代码中找到了生成类似的结构:'DISTINCT ON'
但这种方法没有调用。而不是这称为另一种方法 - sqlalchemy.sql.compiler.get_select_precolumns
- 它没有代码只为DISTINCT ON
生成DISTINCT
也许我应该将我的会话配置为调用正确的方法?
答案 0 :(得分:2)
This bug report表明DISTINCT ON
在SQLAlchemy 0.7+中正常工作。我认为升级是有序的,除非你在0.7中发现了一个错误。
解决方法。 。
DISTINCT
ON
。我不确定是不是
在最一般的情况下是可能的。