当前位置: 首页 > 面试题库 >

具有完整子对象的SQLAlchemy Group By

曾航
2023-03-14
问题内容

想象下面的媒体表:

| site       | show_id | time |
| ---------------------|-------|
| CNN        | 1       | 'a'   |
| ABC        | 2       | 'b'   |
| ABC        | 5       | 'c'   |
| CNN        | 3       | 'd'   |
| NBC        | 4       | 'e'   |
| NBC        | 5       | 'f'   |
--------------------------------

我想遍历由show_id分组的查询结果,并尝试过以下查询:

listings = session.query(Media).filter(Media.site == "CNN").group_by(Media.show_id).all()

这是我要遍历结果的方式:

for showtimes in listings:
    for show in showtimes:
        print(show.time)

但是该查询并不能给我所有分组的子对象。我想念什么?


问题答案:

在SQL中,GROUP BY子句根据分组表达式 将分组的行压缩为单个行
。我的猜测是您正在使用SQLite或MySQL的较早版本,因为允许您选择非聚合,而它们在功能上不依赖于分组表达式。在这种情况下,结果包含每个组中未指定行的值,因此很少(如果有的话)很有用。

一个解决方案是在SQL中使用ORDER BY而不是GROUP
BY,然后根据订单表达式在Python中进行分组:

from itertools import groupby
from operator import attrgetter

listings = session.query(Media).\
    filter(Media.site == "CNN").\
    order_by(Media.show_id).\
    all()

# Materialize the subiterators to lists
listings = [list(g) for k, g in groupby(listings, attrgetter('show_id'))]


 类似资料:
  • 我有两个类,大致定义如下: 我知道只存在于中,并且当且仅当相应对象是成员,而不是时,相应的bool标志将设置为。 我正在寻找一种符合标准的方法来派生指向包含一些内部对象的对象的指针。当然,我可以只在每个对象中存储一个指针,但由于类非常小,而且我有很多,这似乎是浪费内存(因此也是宝贵的缓存)。 显然,编译器应该知道,和包含的对象之间的内存偏移量。问题是:是否有一种符合标准的方法告诉编译器“获取该偏移

  • 问题内容: 对于一个抽象类,我想定义一个为子类返回“ this”的方法: 我希望能够执行以下操作: 可以说香蕉面包会抛出一个IllegalArgumentException消息“不是蛋糕!”。 问题答案: 编辑 要求子类以某种方式表现是没有问题的,这超出了静态类型可以检查的范围。我们一直在这样做-一页又一页的普通英语指定您如何编写子类。 提出的另一种具有协变返回类型的解决方案必须做同样的事情-用简

  • 两个虚拟主机(纯静态-html 支持) - Two Virtual Hosts, Serving Static Files http { : server { : listen 80; : server_name www.domain1.com; : access_log logs/domain1.access.log main; : location / {

  • 本节我们将使用一个弹球的例子来完整地学习使用动画效果。 首先,我们把通用的框架部分写好,按照4.1节的方法实现动画重绘函数,并按6.2节的方法加入stat.js库: var requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || windo

  • 问题内容: 我正在寻找一个提供完整或接近完整的LINQ支持的ORM。 LINQ to SQL- 支持LINQ内部的所有内容(.Contains,Math.Log等) -无法在不创建新数据上下文的情况下渴望加载关系属性 ADO.NET实体框架 -糟糕的LINQ支持(许多缺少的功能)。 -强大的映射功能-可以通过.Query上的.include方法来按需加载 LightSpeed- 出色的LINQ支持

  • 这是来自 Nginx官方网站 的一个例子。 #!nginx : # 使用的用户和组 : user www www; : # 指定工作衍生进程数 : worker_processes 2; : # 指定 pid 存放的路径 : pid /var/run/nginx.pid; : # [ debug | info | notice | warn | error | crit ] : # 可以在

  • 本文向大家介绍php对象工厂类完整示例,包括了php对象工厂类完整示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php对象工厂类。分享给大家供大家参考,具体如下: 更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP数组(Array)操作技巧大全》、《ph

  • 我是新手,如果有人能解释这个问题就好了,这个问题已经回答了,但我还是很困惑。 对象作为React子对象无效(找到:带键{}的对象)。如果要呈现子集合,请改为使用数组。