我连接了多个表,并很好地返回所有列。现在我想返回所有行的总计数
select(Transaction.id, func.count(Transaction.id)).label('count_1'))
.join(TransactionType).join(xxx).group_by(Transaction.id)
它返回如下所示的SQL:
SELECT transaction.id, count(transaction.id) AS count_1
FROM transaction INNER JOIN xxx ON xxx.`xId` = transaction.`xId` INNER JOIN
transaction_type ON transaction_type.id = transaction.`transaction_type` GROUP BY transaction.id
但是,这样做只是为每一行返回count_1
作为1
。我原以为它会返回所有行的计数。如果我不使用group_by
,那么它会抱怨,但我怀疑这就是为什么会发生这种情况。
如何才能获得SQLalChemy/SQLModel中的总行计数?
3条答案
按热度按时间eyh26e7m1#
我想是因为结尾处的括号打错了。标签应该是用于函数的。计数如下。
8qgya5xd2#
结果只是抓住了
len(session.exec(sql).all())
的长度gojuced73#
我也有过类似的情况。我使用的是异步请求。
以下解决方案适用于我在SQLModel中的工作:
希望这能有所帮助。!