首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何查询数据库得到一个列表,其中每个值都是具有相同日期值的记录数量的总和?

如何查询数据库得到一个列表,其中每个值都是具有相同日期值的记录数量的总和?
EN

Stack Overflow用户
提问于 2019-06-11 02:24:34
回答 1查看 22关注 0票数 1

我正在使用SQLAlchemy在SQLite数据库上执行查询。我在做一个四表连接。其中一个表中的一个字段是datetime字段。我能够获得元组的列表,其中包含符合我要查找的条件的所有记录。我想获得的是一个列表,其中包含具有相同日期的记录的总和。因此,如果我有1条记录在某个时间,3条记录都在同一时间,但与第一条记录不同,我会得到列表1,3。

以下是我当前的查询:

代码语言:javascript
复制
rework_records = DB.session.query(ReworkRecord, NonConformanceRecord, Part, Product).join(
        NonConformanceRecord, NonConformanceRecord.id == ReworkRecord.nonconformance_id
        ).join(
            Part
            ).join(
                Product
                ).filter(
                    Product.id == form.product_family.data).order_by(
                        desc(NonConformanceRecord.entry_date)
                        ).all()

这将返回元组列表,其中每个条目都包含来自被联接的四个表中的每个表的记录。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-11 03:09:02

您只缺少一条GROUP BY语句。表达式COUNT(*)将提供具有给定entry_date的记录数。

代码语言:javascript
复制
rework_records = DB.session.from_statement('''SELECT NonConformanceRecord.entry_date, COUNT(*) 
FROM ReworkRecord 
JOIN NonConformanceRecord ON NonConformanceRecord.id == ReworkRecord.nonconformance_id 
JOIN Part
JOIN Product
WHERE Product.id == form.product_family.data
GROUP BY NonConformanceRecord.entry_date
ORDER BY NonConformanceRecord.entry_date DESC''')

我不太熟悉你写它的方式,但我相信它会是:

代码语言:javascript
复制
rework_records = DB.session.query(NonConformanceRecord.entry_date, COUNT(*)).join(
        NonConformanceRecord, NonConformanceRecord.id == ReworkRecord.nonconformance_id
        ).join(
            Part
            ).join(
                Product
                ).filter(
                    Product.id == form.product_family.data).group_by(
                        NonConformanceRecord.entry_date).order_by(
                            desc(NonConformanceRecord.entry_date)
                        ).all()

在第二部分不起作用的情况下,最上面的部分应该做完全相同的事情。但是,我不知道您从哪里获得form.product_family.data,因为您不会加入一个名为form的表

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56531661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档