SQLAlchem​​y的使用计数,GROUP_BY和ORDER_BY使用ORM

我有几个功能,我需要做一个一对多的连接,使用count(),GROUP_BY和ORDER_BY。 我使用的sqlalchem​​y.select函数产生,将返回我一组的id,然后我遍历做的个人记录的ORM选择查询。 如果有一种方法可以做到什么,我需要使用ORM在一个单一的查询,以便我能避免做重复什么,我不知道是。

下面是我在做什么,现在的一个例子。 在这种情况下,实体是位置和指南,映射一到多。 我想要得到的顶部位置排序,他们有多少指导相关的列表。

def popular_world_cities(self): query = select([locations.c.id, func.count(Guide.location_id).label('count')], from_obj=[locations, guides], whereclause="guides.location_id = locations.id AND (locations.type = 'city' OR locations.type = 'custom')", group_by=[Location.id], order_by='count desc', limit=10) return map(lambda x: meta.Session.query(Location).filter_by(id=x[0]).first(), meta.engine.execute(query).fetchall())

我发现做到这一点的最好办法。 简单地提供一个from_statement代替filter_by或类似。 像这样:

meta.Session.query(Location).from_statement(query).all()

--------------解决方案-------------

什么,你正在试图做的直接映射到SQLAlchem​​y的一个子查询[从当前选择调用作出]与表之间的连接。 你要移动的顺序出来的子查询,并创建一个单独的,标有计数(DESC)列; 订购外部选择按该列。

除此之外,我没有看到太多这是不明显的。

我发现做到这一点的最好办法。 简单地提供一个from_statement代替filter_by或类似。 像这样:

meta.Session.query(Location).from_statement(query).all()

伙计们,我发现这个硬盘的方式,但SQL炼金术确实支持GROUP_BY。 查询下的文件没有这么说,但它不支持它 - 我已经用它!

而且,你还可以使用ORDER_BY。 我要像你一样创建一个特殊的类/查询,但后来我发现有一个GROUP_BY()函数。

希望这会帮助别人!

分类:蟒蛇 时间:2012-01-01 人气:0
本文关键词: 蟒蛇,SQLAlchem​​y的
分享到:

相关文章

  • 蟒蛇 - SQLAlchem​​y的:由大圆距离筛选查询? 2012-03-27

    我使用Python和SQLAlchem​​y的存储在SQLite数据库经度和纬度值. 我已经创建了我的位置对象的混合方法, @hybrid_method def great_circle_distance(self, other): """ Tries to calculate the great circle distance between the two locations If it succeeds, it will return the great-circle

  • 蟒蛇SQLAlchem​​y的并行操作 2013-11-01

    您好,我有一个多线程程序,所有的线程都会对Oracle数据库进行操作​​. 因此,可以SQLAlchem​​y的支持Oracle并行操作? TKS! --------------解决方案------------- OCI(Oracle客户端接口)具有OCI_THREADED参数有连接的作用被mutexed,这样通过多线程的并发访问是安全的. 这可能是你看到的文件是指设置. cx_oracle使用关键字参数"螺纹",在http://cx-oracle.sourceforge.net/ht

  • 蟒蛇SQLAlchem​​y的不认主键列和抱怨,为什么呢? 2014-03-15

    我有这样的MySQL表: CREATE TABLE `affiliations` ( `affiliation_id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(333) COLLATE utf8_bin NOT NULL, PRIMARY KEY (`affiliation_id`), UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE

  • 蟒蛇SQLAlchem​​y的表现? 2014-08-03

    嗨,我做了一个ICAPServer为它的性能是非常重要的(用的HttpServer类似). 该数据库模块是SQLAlchem​​y的. 然后我做了关于SQLAlchem​​y的性能测试,其结果是,我发现,它需要大约30ms的SQLAlchem​​y写<50KB的数据到数据库(Oracle)的,我不`吨知道,如果结果是正常的,或者我做了错误? 但是,不管对错,似乎瓶颈来自于数据库的一部分. 如何提高SQLAlchem​​y的表现? 或者它是由DBA来提高甲骨文? 顺便说一句,ICAPServer和

  • 蟒蛇+ SQLAlchem​​y的:如何处理在数据库方面timedelta? 2012-07-13

    与Python编码,我想插就这样在数据库方面的处理时间: time = func.now()-datetime.timedelta(days=100) 要么 time = func.current_timestamp()-datetime.timedelta(days=100) 但不知何故,电话打不通,眼看警告: sqlalchemy\engine\default.py:330: Warning: Truncated incorrect DOUBLE value: '1970-01-04 00:

  • 蟒蛇SQLAlchem​​y的动态获取的列名? 2013-03-28

    #!/usr/bin/env python # -*- coding: utf-8 -*- from sqlalchemy import create_engine connection = create_engine('mysql://user:passwd@localhost:3306/db').connect() result = connection.execute("select * from table") for v in result: print v['id'] pr

  • 当许多accesed在蟒蛇SQLAlchem​​y的许多有关如何订购的元素呢? 2013-12-21

    假设一个多对多的关系两种型号: parent_child = Table('parent_child', metadata, Column('parent_id', Integer, ForeignKey('parent.id')), Column('child_id', Integer, ForeignKey('children.id'))) class Parents(Base): __tablename__ = 'parents' __table_args__ = {'autoload'

  • SQLAlchem​​y的会议上不承认更改mysql数据库(由其他进程完成) 2013-08-01

    应用包括: 主要工艺(蟒蛇+ SQLAlchem​​y的)能够定期检查分贝(睡觉的大部分时间) 注意写入到数据库的子进程 web应用程序写入到数据库 问题是,主进程会议似乎并没有改变登记在会议之外完成的分贝. 如何确保它呢? (就像现在我将结束,每一个过程醒悟并执行其检查时间重开会议). --------------解决方案------------- 我将结束,每一个进程醒来并执行其检查时间重新打开会话 SQLAlchem​​y的不会这样工作. 更改跟踪会话. someobj = Session

  • 为SQLAlchem​​y的xml配置 2014-05-05

    有没有办法拿出从模型类蟒蛇SQLAlchem​​y的映射? 直到现在我使用声明映射,其中的类将扩展声明的基础. 但现在我想一些模型生成的Python模块中映射. 所以我不能修改模型类. 我应该是采用经典的映射是映射器()函数? 是否古典映射给出所有选项声明映射? 有没有像休眠的hbm.xml文件的XML配置的方式? 问候,Litty --------------解决方案------------- 下面的示例如何手工工艺的一种基于XML的ORM类自己的解决方案. 它读取从本教程User.hbm.x

  • 蟒蛇,主塔和SQLAlchem​​y的:分析Facebook的图形API 2012-06-02

    我想从Facebook的图形API获取数据并进行分析,找出一个人大致是如何接近到另一个. 我试图使用与SQLAlchem​​y的桥塔框架(现在它是连接到一个SQLite数据库)来存储从图形API的信息,以便我可以提供给我的其他应用程序通过RESTful Web服务. 我想知道什么将是分析数据的最佳方法. 例如,我要创建对象类似于图形API中的节点和边(用户,文章,状态等),并对其进行分析,那么只有分析之后存储在数据库中,也许每个节点的UID和其连接到其他节点? 或者我应该存储更少,只有具备用户和

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.275 (s). 10 q(s)