Thanks. The DB is MySQL.
On Fri, Mar 12, 2010 at 2:16 AM, Conor <[email protected]> wrote: > Moshe C. wrote: > > How do I write an expression (in sqlalchemy 0.4.6) that will generate > > the following expression: > > > > select count(distinct field1, field2) from tableA; > > > > I know how to do it for one field and I know how to do it with no > > count using distinct=True, but not this combination. > > > > What database are you using? I have not heard of a dialect that accepts > multiple columns in a COUNT() function. This seems to work on 0.4.6, but > it is sheer luck and very fragile: > >>> print select([func.count(tableA.c.field1.distinct(), > tableA.c.field2)], from_obj=tableA) > SELECT count(DISTINCT "tableA".field1, "tableA".field2) AS count_1 > FROM "tableA" > > The "standard" way is to use a subquery like so: > select count(*) from (select distinct field1, field2 from tableA) anon > > which you can do via: > >>> print select([func.count(text("*"))], > from_obj=select([tableA.c.field1, tableA.c.field2], distinct=True)) > SELECT count(*) AS count_1 > FROM (SELECT DISTINCT "tableA".field1 AS field1, "tableA".field2 AS field2 > FROM "tableA") > > Hope it helps, > -Conor > > -- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<sqlalchemy%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/sqlalchemy?hl=en. > > -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
