我想知道是否可以SELECT COUNT(*) FROM TABLE
在SQLAlchemy中生成一个语句而无需使用显式地请求它execute()
。如果我使用:
session.query(table).count()
然后它会生成如下内容:
SELECT count(*) AS count_1 FROM
(SELECT table.col1 as col1, table.col2 as col2, ... from table)
这在使用InnoDB的MySQL中要慢得多。我正在寻找一种不需要表具有已知主键的解决方案,如使用SQLAlchemy获取表中的行数中所建议。
我设法在两层上使用SQLAlchemy呈现以下SELECT。
SELECT count(*) AS count_1
FROM "table"
from sqlalchemy import select, func, Integer, Table, Column, MetaData
metadata = MetaData()
table = Table("table", metadata,
Column('primary_key', Integer),
Column('other_column', Integer) # just to illustrate
)
print select([func.count()]).select_from(table)
您只需将其子类化Query
(无论如何,您都可以)并提供一种专门的count()
方法,就像这样。
from sqlalchemy import func
class BaseQuery(Query):
def count_star(self):
count_query = (self.statement.with_only_columns([func.count()])
.order_by(None))
return self.session.execute(count_query).scalar()
请注意,order_by(None)
重置查询的顺序,这与计数无关。
使用此方法,您可以count(*)
在任何ORM查询上使用,这将满足所有已指定的filter
和join
条件。
问题内容: 如何使用Swift 进行倒数计时? 问题答案: 问题1: 问题2: 两者都可以。SpriteKit是用于场景,运动等的SDK。简单视图应用程序是项目模板。他们不应该冲突
我有一个简单的国家/地区表,其中包含名称,大陆,人口和其他一些字段。 我正在尝试使用ActiveRecord执行以下MySQL查询 选择来自大陆=“亚洲”的国家/地区的计数(*),总和(人口),AVG(人口) 我该怎么做? 我试过: 国其中(:大陆= 国其中(:大陆= 国其中(:大陆= 它们都单独工作得很好,它们都返回数字(不是一个ActiveRelation对象),这意味着您不能做类似 国其中(
对不起,朋友们,我想问一下。我有4个db表。 桌位 表type_member 表事务处理 表history_member 如上所示的表格内容示例。如果表格的内容像上面的照片。如何找出总交易类型_Member“银”是怎样的?因为,例如,如果我使用查询将loket表与事务连接起来,那么结果必须为空,因为在transaction表中假定没有事务来自成员类型为silver的loket。即使你看看历史,它应
我有一个来自以下用户的消息列表: 我想从这个消息对象列表中计数并显示。有代码帮助吗?
问题内容: 我阅读了Firestore文档以及Internet(stackoverflow)上有关Firestore分页的所有文章,但没有运气。我试图在文档中实现确切的代码,但是什么也没有发生。我有一个包含项目的基本数据库(超过1250个或更多),我想逐步获取它们。通过滚动以加载15个项目(到数据库中的最后一个项目)。 如果使用文档代码: 怎么做?文档没有太多细节。 PS:当用户滚动时,我需要使用
我正在使用webpack,并根据示例分别基于whatwg-fetch和es6-promise包为较旧的浏览器提供了polyfill fetch和Promise。 但是,现在我需要polyfill array.prototype.find(),但是找不到如何使用WebPack的ProvidePleugin特性实现这一点。find的不同之处在于,它本质上是数组原型上的一个方法,我还没有找到如何使用Pr