python - 如何在 sqlalchemy 中获取每天的行数?
问题描述
我有以下简单的表格,
ID DateTime Category
-- -------- ----------
1 2018-05-12 5:05 1
2 2018-05-12 5:10 1
3 2018-05-12 6:25 2
4 2018-05-13 7:40 1
5 2018-05-14 8:50 4
我想计算每个类别每天的条目数,所以结果应该是,
Day Category Count
--------- -------- -------
2018-05-12 1 2
2018-05-12 2 1
2018-05-13 1 1
2018-05-14 4 1
我怎么能在 sqlalchmey 中做到这一点?
编辑:我使用的数据库是 PostgreSQL
编辑:列及其具体类型如下,ID - 整数,类别 - 整数,日期时间 - 日期时间
解决方案
最简单的方法是执行以下操作(无类别):
from sqlalchemy import text
q = text(
"""
SELECT d.date, count(se.id)
FROM (
SELECT to_char(date_trunc('day', (current_date - offs)), 'YYYY-MM-DD') AS date
FROM generate_series(0, <NUMBER_OF_DAYS>, 1) AS offs
) d
LEFT OUTER JOIN some_table se
ON d.date = to_char(date_trunc('day', se.created), 'YYYY-MM-DD'))
GROUP BY d.date;
"""
)
session.execute(q).all()
推荐阅读
- wordpress - 更改在 WordPress 中共享 URL 时显示的文本
- angular - 使用响应式表单侦听表单中的更改值
- ios - 如何根据超级视图组件重新定位tableView
- .net-core - 自包含的 .netcore 应用程序可以在 AIX 上运行吗?
- python - 使用通配符导入的原因是什么?
- sql - 如何不使用内部选择
- mongodb - docker ERR_CONNECTION_TIMED_OUT 中的 mongodb
- laravel - Laravel - 调用get方法后使用相同引用时的错误结果
- user-interface - 如何在 Python 3.6.8 中修复 'ImportError: cannot import name 'ttk''
- sql - 如何使用 DAO 传递 LONGTEXT 参数?