Well, that worked great:

    q = meta.Session.query(m.Hit.referer, func.count(m.Hit.id))\
        .group_by(m.Hit.referer)\
        .order_by(func.count(m.Hit.id).desc())

Thanks!

ps: Is there a better way to specify the count in the order_by?

On Jun 19, 2:58 pm, "Michael Bayer" <mike...@zzzcomputing.com> wrote:
> Hollister wrote:
>
> > Ok, I see.
> > So what's the best way for me to construct and execute this query?
>
> use Query:
>
> session.query(MyClass.someid,
> MyClass.somethingelse).filter(..whatever..).order_by(..whatever...)
>
>
>
> > On Jun 19, 1:30 pm, "Michael Bayer" <mike...@zzzcomputing.com> wrote:
> >> you can't call count() when you've used from_statement, that should be
> >> raising an error.   the bug is that no error is being raised.
>
> >> Hollister wrote:
>
> >> > Here you go:
>
> >> > URL:http://dev:5000/hits/referrers
> >> > File '/home/aw/venv/dev/lib/python2.6/site-packages/WebError-0.10.1-
> >> > py2.6.egg/weberror/evalexception.py', line 431 in respond
> >> >   app_iter = self.application(environ, detect_start_response)
> >> > File '/home/aw/venv/dev/lib/python2.6/site-packages/Beaker-1.3-
> >> > py2.6.egg/beaker/middleware.py', line 81 in __call__
> >> >   return self.app(environ, start_response)
> >> > File '/home/aw/venv/dev/lib/python2.6/site-packages/Beaker-1.3-
> >> > py2.6.egg/beaker/middleware.py', line 160 in __call__
> >> >   return self.wrap_app(environ, session_start_response)
> >> > File '/home/aw/venv/dev/lib/python2.6/site-packages/Routes-1.10.3-
> >> > py2.6.egg/routes/middleware.py', line 130 in __call__
> >> >   response = self.app(environ, start_response)
> >> > File '/home/aw/venv/dev/lib/python2.6/site-packages/Pylons-0.9.7-
> >> > py2.6.egg/pylons/wsgiapp.py', line 125 in __call__
> >> >   response = self.dispatch(controller, environ, start_response)
> >> > File '/home/aw/venv/dev/lib/python2.6/site-packages/Pylons-0.9.7-
> >> > py2.6.egg/pylons/wsgiapp.py', line 324 in dispatch
> >> >   return controller(environ, start_response)
> >> > File '/home/aw/projects/resonate/corp/corp/lib/base.py', line 18 in
> >> > __call__
> >> >   return WSGIController.__call__(self, environ, start_response)
> >> > File '/home/aw/venv/dev/lib/python2.6/site-packages/Pylons-0.9.7-
> >> > py2.6.egg/pylons/controllers/core.py', line 221 in __call__
> >> >   response = self._dispatch_call()
> >> > File '/home/aw/venv/dev/lib/python2.6/site-packages/Pylons-0.9.7-
> >> > py2.6.egg/pylons/controllers/core.py', line 172 in _dispatch_call
> >> >   response = self._inspect_call(func)
> >> > File '/home/aw/venv/dev/lib/python2.6/site-packages/Pylons-0.9.7-
> >> > py2.6.egg/pylons/controllers/core.py', line 107 in _inspect_call
> >> >   result = self._perform_call(func, args)
> >> > File '/home/aw/venv/dev/lib/python2.6/site-packages/Pylons-0.9.7-
> >> > py2.6.egg/pylons/controllers/core.py', line 60 in _perform_call
> >> >   return func(**args)
> >> > File '/home/aw/projects/resonate/corp/corp/controllers/hits.py', line
> >> > 67 in referrers
> >> >   items_per_page = 50,
> >> > File '/home/aw/venv/dev/lib/python2.6/site-packages/WebHelpers-0.6.4-
> >> > py2.6.egg/webhelpers/paginate.py', line 333 in __init__
> >> >   self.item_count = len(self.collection)
> >> > File '/home/aw/venv/dev/lib/python2.6/site-packages/WebHelpers-0.6.4-
> >> > py2.6.egg/webhelpers/paginate.py', line 204 in __len__
> >> >   return self.obj.count()
> >> > File '/home/aw/venv/dev/lib/python2.6/site-packages/SQLAlchemy-0.5.2-
> >> > py2.6.egg/sqlalchemy/orm/query.py', line 1465 in count
> >> >   should_nest = should_nest[0]
> >> > File '/home/aw/venv/dev/lib/python2.6/site-packages/SQLAlchemy-0.5.2-
> >> > py2.6.egg/sqlalchemy/orm/query.py', line 1472 in _col_aggregate
> >> >   entity.setup_context(self, context)
> >> > File '/home/aw/venv/dev/lib/python2.6/site-packages/SQLAlchemy-0.5.2-
> >> > py2.6.egg/sqlalchemy/orm/query.py', line 1956 in setup_context
> >> >   if context.order_by is False and self.mapper.order_by:
> >> > AttributeError: 'QueryContext' object has no attribute 'order_by'
>
> >> > On Jun 19, 12:35 pm, "Michael Bayer" <mike...@zzzcomputing.com> wrote:
> >> >> Hollister wrote:
>
> >> >> >> When I run this, I get:
>
> >> >> >> Module sqlalchemy.orm.query:1956 in setup_context
> >> >> >> <<          context.froms.append(self.selectable)
> >> >> >>                if context.order_by is False and
> >> self.mapper.order_by:
> >> >> >>                    context.order_by = self.mapper.order_by>>  if
> >> >> >> context.order_by is False and self.mapper.order_by:
>
> >> >> I need a full stack trace on this since once from_statement() is
> >> called,
> >> >> setup_context() should never be called.
>
> >> >> >> AttributeError: 'QueryContext' object has no attribute 'order_by'
>
> >> >> >> This evidently has nothing to do with the query's order_by clause
> >> >> >> since I get the same error if I remove it. If I execute the query
> >> and
> >> >> >> pass the results to paginate:
>
> >> >> >> results = query.all()
>
> >> >> >>         c.paginator = paginate.Page(
> >> >> >>             results,
> >> >> >>             page = int(request.params.get('page', 1)),
> >> >> >>             items_per_page = 50,
> >> >> >>         )
>
> >> >> >> I get:
>
> >> >> >> AttributeError: 'Hit' object has no attribute 'count'
>
> >> >> >> Which I guess makes sense, since I don't have that defined in my
> >> >> >> class.
>
> >> >> >> What am I doing wrong?
>
>
--~--~---------~--~----~------------~-------~--~----~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to