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.

Reply via email to