繁体   English   中英

如何总结sqlite3中的每月总数

[英]How to sum up monthly total in 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, dateamount ,日期格式为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;

SQLFiddle示例

(使用sqlite日期和时间功能可以理解的日期格式会获得加分;太多人使用“ MM / DD / YYYY”之类的东西)

编辑:如果您有大量数据并经常运行,则可能需要使用计算索引来加快速度:

CREATE INDEX sales_idx_monthly ON sales(strftime('%Y-%m', date));

一个“分组依据”,而不是在哪里应该工作

GROUP BY strftime('%Y',`DATE`), strftime('%m',`DATE`)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM