如何在sqlite3中总结每月总数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在sqlite3中总结每月总数相关的知识,希望对你有一定的参考价值。
我在这里有几行代码可以总结一个month
的总值,但我想要做的是总结每个month
并打印它们。当我改变月份值它工作正常但我想总结每个月的总价值
example:
january = 200
february = 240
march = 310
....
december = 8764
考虑到年份条件。
码
import sqlite3
conn = sqlite3.connect("test.db")
cur = conn.cursor()
cur.execute("SELECT SUM(AMOUNT) FROM `cash` WHERE strftime('%m', `DATE`) = '10'")
rows = cur.fetchall()
for row in rows:
print(row)
该表有列name, date
和amount
,日期是这种格式2019-05-23, 2016-05-30
NAME DATE AMOUNT
JOE 2018-01-23 50.00
BEN 2018-01-21 61.00
FRED 2018-02-23 31.00
FRED 2018-02-03 432.00
DAN 2018-03-23 69.00
FRED 2018-03-23 61.00
BRYAN 2018-04-21 432.00
FELIX 2018-04-25 907.00
.......................
......................
答案
是的,你需要GROUP BY
。就像是:
SELECT strftime('%Y-%m', date) AS sales_month
, sum(amount) AS total_sales
FROM sales
GROUP BY sales_month
ORDER BY sales_month;
(你使用sqlite日期和时间函数理解的日期格式获得奖励积分;太多人使用“MM / DD / YYYY”等)
编辑:如果您有大量数据并经常运行,您可能希望使用计算索引来加速它:
CREATE INDEX sales_idx_monthly ON sales(strftime('%Y-%m', date));
另一答案
一个“group by”而不是where部分应该工作
GROUP BY strftime('%Y',`DATE`), strftime('%m',`DATE`)
以上是关于如何在sqlite3中总结每月总数的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB聚合查询返回集合中每年每月的条目总数,按位置值分组
Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段
Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段