SQLAlchemy в Query.distinct ведет себя непоследовательно:Возвращение отдельных строк в SQLAlchemy с методом 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
Так вторая форма дает правильный результат, но первая форма не делает. Это похоже на SQLite, но не с Postgres. У меня есть функция, которая передается объекту запроса, чтобы применить к нему предложение distinct
, поэтому было бы очень сложно переписать все, чтобы использовать второй подход выше. Есть ли что-то очевидное, что мне не хватает?
Спасибо; Я видел этот комментарий в документах о 'DISTINCT ON', но так как документы явно не говорили« и это единственный способ, которым это работает »или что-то в этом роде, я не понимал, что это подразумевалось. –