Here's the case you've outlined, show me exactly what you're doing:
from sqlalchemy import * from sqlalchemy.orm import * from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class A(Base): __tablename__ = 'a' id = Column(Integer, primary_key=True) foo = Column(String) s = Session() q1 = s.query(func.array_agg(A.foo)) q2 = q1.with_entities(func.group_concat(A.foo)) print q1 print q2 output: SELECT array_agg(a.foo) AS array_agg_1 FROM a SELECT group_concat(a.foo) AS group_concat_1 FROM a On 05/02/2016 04:07 AM, Антонио Антуан wrote:
Hm, now it is ok, but previously, during another task, I checked the method and it returned the result with subquery, like this: | SELECT a.c FROM (SELECT t.c FROM t)asa | Why did I get the result with subquery? Does it depend on something specific? суббота, 30 апреля 2016 г., 16:05:12 UTC+3 пользователь Mike Bayer написал: yes please use query.with_entities http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html?highlight=query.with_entities#sqlalchemy.orm.query.Query.with_entities <http://docs.sqlalchemy.org/en/rel_1_0/orm/query.html?highlight=query.with_entities#sqlalchemy.orm.query.Query.with_entities> On 04/30/2016 02:33 AM, Антонио Антуан wrote: > > I have the query: > | > q =Session.query(func.array_agg(Order.col)) > | > > The compiled query will be: > | > SELECT array_agg(order.col)FROM orders > | > > I want dynamically replace the existing column. After replacing query > have to be: > | > SELECT group_concat(orders.col)FROM orders > | > > I have to use Session and model. I don't have to use SQLAlchemy core. I > don't have to use subqueries. And, of course, there can be some other > columns, but I need to replace only one. I tried to replace objects in > `column_descriptions` property, I tried to use `q.selectable.replace`(or > something like this, sorry, but I don't remember right names) and I > didn't get right result. > > Can I do what I want? > > -- > You received this message because you are subscribed to the Google > Groups "sqlalchemy" group. > To unsubscribe from this group and stop receiving emails from it, send > an email to sqlalchemy+...@googlegroups.com <javascript:> > <mailto:sqlalchemy+unsubscr...@googlegroups.com <javascript:>>. > To post to this group, send email to sqlal...@googlegroups.com <javascript:> > <mailto:sqlal...@googlegroups.com <javascript:>>. > Visit this group at https://groups.google.com/group/sqlalchemy <https://groups.google.com/group/sqlalchemy>. > For more options, visit https://groups.google.com/d/optout <https://groups.google.com/d/optout>. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com <mailto:sqlalchemy+unsubscr...@googlegroups.com>. To post to this group, send email to sqlalchemy@googlegroups.com <mailto:sqlalchemy@googlegroups.com>. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.
-- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.