在flask中,我从sqlite3数据库中提取了以下查询:
rows = db.execute("SELECT SUM(shares), symbol, FROM portfolio GROUP BY symbol")
输出如下:
[{'SUM(shares)': 0, 'symbol': 'F'}, {'SUM(shares)': 4, 'symbol': 'FB'}, {'SUM(shares)': 3, 'symbol': 'GOOG'}]
如果“sum(shares)”==0,我想删除/删除一行中的一行。我试过这个:
for row in rows:
if row["SUM(shares)"] == 0:
del(row)
但它不能正常工作。我很感激你能提供的任何帮助。
1条答案
按热度按时间jgzswidk1#
我建议另一种方法:不要一开始就选择它们。从sqlite文档:
如果指定了having子句,则它将作为布尔表达式为每组行计算一次。如果having子句的求值结果为false,则丢弃该组。如果having子句是聚合表达式,则会跨组中的所有行对其求值。如果having子句是一个非聚合表达式,它将根据从组中任意选择的行进行计算。having表达式可能引用不在结果中的值,甚至聚合函数。
如果
HAVING sum(shares) > 0
如果包含在查询中(在分组依据之后),则不会首先选择行。我知道这不是对具体问题的回答。我想
del
以索引作为参数。我脑海里有一个老师的声音在说,不要在列表被迭代时改变它。