Something like this should work:

select(['count(distinct flow.node_id) as nodes', ip],
from_obj=[flow.join(id)], group_by=[flow.c.src_id], having=['nodes >
5'], order_by=[desc('nodes')])

If you wanted to do it w/o text blocks I think you'd have to create a
subselect first to pull the nodes "column" off of.

On 2/23/07, Arthur Clune <[EMAIL PROTECTED]> wrote:
>
>
> This should be easy, but I'm having real problems with it. I'd like
> to do the following SQL (this is from MySQL) as a sqa query:
>
> select count(distinct flow.node_id) as nodes, ip.ip_addr,
> ip.country, ip.domain, ip.isp, ip.city from flow, ip where flow.src_id =
> ip.id group by flow.src_id having nodes > 5 order by nodes desc;
>
> I can't work out how to do the 'having nodes > 5' bit at all. All
> help gratefully received!
>
> For info, the tables look like this (with some fields missed out for
> clarity):
>
> Tables are pretty straightfoward. Slighty edited, they look like this:
>
> owner_table = Table("node",
>      Column("id", Integer, primary_key=True),
>         [more stuff]
> )
>
> # location data based on the fields from ip2location
> ip_table = Table("ip",
>      Column('id', Integer, primary_key=True),
>      Column('ip_addr', String(16), nullable=False, index=True,
> unique=True),
>      Column('isp', Unicode, default=0.0),
>      Column('domain', Unicode, default=0.0),
>      Column('country', Unicode, default=None),
>      Column('city', Unicode, default=None),
> )
>
> flow_table = Table("flow",
>      Column("id", Integer, primary_key=True),
>      Column("owner_id", Integer, ForeignKey("honeypot.id"),
>              nullable=False),
>      Column("ip_proto", Integer, default=6, nullable=False),
>      Column("src_id", Integer, ForeignKey("ip.id"), nullable=False),
>      Column("dst_id", Integer, ForeignKey("ip.id"), nullable=False),
> )
>
> Then I define the obvious mappers.
>
> Cheers,
>
> Arthur
>
> --
> Arthur Clune
>
>
>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
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