我有一个表,看起来像这样:
[Things]
id date number name
------------------------------------------------------------
1 2000-11-20 11 Joe
2 1999-10-13 12 Lis
3 1999-11-11 13 Jhonson
------------------------------------------------------------我需要编写这个程序,在这个程序中,我使用Python和SQL来计算该列表中每个数字的总和,同时只使用年份作为过滤器。问题是我从来没有做过python,而且在没有任何指导的情况下我很难在java中实现SQL,所以我只是开始学习python的基础知识。(这是我正在学习的初学者SQL课程,所以重点不是学习python,而是其他任何东西)我想出了这个:
year = input("Give the year: ")
arvo = db.execute("SELECT number,SUBSTRING (date, 1, 4) FROM Things").fetchall() 所以现在我有了数字和年份的列表,所以我现在可以很容易地计算总和,但我不太确定你是如何在Python中做到的。如果有人知道在SQL中进一步过滤它的方法,那就更好了!提前感谢!我知道我可以使用"if year in arvo“来检查是否有正确的年份,但由于某些原因,我对每一行都很纠结(对于x)。
发布于 2021-06-28 05:52:51
您必须筛选作为输入获得的年份的表,并使用SUM()聚合函数来获得结果:
vuosi= input("Give the year: ")
sql = """
SELECT SUM(number) AS total
FROM Things
WHERE SUBSTR(date, 1, 4) = ?
"""
arvo = db.execute(sql, (vuosi,)).fetchone()
total_sum = arvo[0]发布于 2021-06-28 05:49:01
我假设您使用的是sqlite。尝试使用此SQL查询:
SELECT SUM(number) FROM Things
WHERE strftime('%Y', date) = yearpython代码应该是:
arvo = db.execute("SELECT SUM(number) FROM Things WHERE YEAR(date) = ?", (int(vuosi),)).fetchone()[0]发布于 2021-06-28 05:55:10
vuosi= input("Give the year: ")
sql = f"""
SELECT SUM(number) AS sum
FROM Things
WHERE SUBSTRING(date, 1, 4) = {vuosi}
"""从这里开始执行。年份输入被填充到SQL查询中。
https://stackoverflow.com/questions/68155501
复制相似问题