でSQLAlchemyの中に明確な行を返すSQLAlchemyののQuery.distinct方法が一貫性なく動作している:SQLiteの
>>> [tag.name for tag in session.query(Tag).all()]
[u'Male', u'Male', u'Ninja', u'Pirate']
>>> session.query(Tag).distinct(Tag.name).count()
4
>>> session.query(Tag.name).distinct().count()
3
だから、2番目の形式は正しい結果を与えますが、最初の形はしていません。これはPostgresではなくSQLiteで起こるようです。私はそれに適用されるdistinct
句を持っているクエリオブジェクトを渡される関数を持っているので、上のすべての2番目のアプローチを使用するすべてを書き換えることは非常に困難です。私が行方不明になっていることは明らかですか?ドキュメントによれば
感謝を。 「DISTINCT ON」に関するドキュメントのコメントを見ましたが、ドキュメントで明示的に「これだけが動作する唯一の方法」などとは言わなかったので、それが暗示されていることはわかりませんでした。 –