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

在SQLAlchemy中将alias()用于'select as'

漆雕洋
2023-03-14
问题内容

假设我有一个包含以下各列的表“ shares”:

company    price    quantity
Microsoft  100      10
Google     99       5
Google     99       20
Google     101      15

我想运行等效的SQL语句,如下所示:

select price, 
       sum(quantity) as num 
from shares 
where company='Google' 
group by price;

我最接近的是:

result = (dbsession.query(Shares.price, func.sum(Shares.quantity))
         .filter(Shares.company == 'Google')
         .group_by(Shares.price)
         .all())

我在sqlalchemy中设置’sum(quantity)as
num’时遇到麻烦。看来我需要使用alias(),但是我无法通过查看文档来弄清楚该怎么做。如果有人可以告诉我该怎么做,我将不胜感激。

非常感谢!


问题答案:

您实际上需要该label方法。

result = dbsession.query(Shares.price, \
                            func.sum(Shares.quantity).label("Total sold")) \
                            .filter(Shares.company== 'Google') \
                            .group_by(Shares.price).all()


 类似资料:
  • 问题内容: 如何在python中使用sqlalchemy重写以下sql语句。我一直在搜索30分钟,但仍然找不到任何解决方案。 要么 提前致谢 问题答案: SQLAlchemy日期自动映射到Python日期时间对象,因此您应该能够执行以下操作:

  • 很多人更倾向于使用 SQLAlchemy 进行数据库操作。在这种情况下,建议您使用 包的而不是模块的方式组织您的应用代码,并将所有的模型放置到一个单独的模块中 (大型应用)。尽管这并非必要,但是这么做将会让程序的结构更加 明晰。 使用 SQLAlchemy 有四种常用的方法,我们在下面列出了这几种方法的基本使用 框架: Flask-SQLAlchemy 扩展 因为 SQLAlchemy 是一个常用

  • 在当前名称空间中将别名添加到另一个名称空间。 参数是两个符号:要使用的别名和目标命名空间的符号名称。 语法 (Syntax) 以下是语法。 (alias aliasname namespace-name) Parameters - 'aliasname'是需要与命名空间关联的别名。 'namespace-name'是与正在运行的程序关联的名称空间。 Return Value - 无。 例子 (E

  • 标记成员有一个别名 Syntax (语法) @alias <aliasNamepath> Overview (概述) @alias标签标记成员有一个别名。如果该成员有不同的名称,JSDoc把所有引用作为这个成员。如果你在一个内部函数中定义一个类的时候,这个标签是非常有用的;在这种情况下,您可以使用@alias标签告诉JSDoc,这个类如何在您的应用程序中暴露出来。 虽然@alias标签听起来类似于

  • alias用于设置当前数据表的别名,便于使用其他的连贯操作例如join方法等。 示例: Db::table('think_user') ->alias('a') ->join('think_dept b ','b.user_id= a.id') ->select(); 最终生成的SQL语句类似于: SELECT * FROM think_user a INNER JOIN think_dept b

  • 问题内容: 我有这样的查询: 出现以下错误: 在MySql中,这是有效的,但显然在Postgresql中是无效的。据我所知,原因是查询部分的评估晚于该部分。是否有解决此问题的常用解决方法? 问题答案: 正如您所经历的那样,MySQL的支持是非标准的。正确的方法是重新打印SELECT子句中使用的相同表达式: