我想从flask db中删除一行根据行中的条件执行查询

kokeuurv  于 2021-08-01  发布在  Java
关注(0)|答案(1)|浏览(269)

在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)

但它不能正常工作。我很感激你能提供的任何帮助。

jgzswidk

jgzswidk1#

我建议另一种方法:不要一开始就选择它们。从sqlite文档:
如果指定了having子句,则它将作为布尔表达式为每组行计算一次。如果having子句的求值结果为false,则丢弃该组。如果having子句是聚合表达式,则会跨组中的所有行对其求值。如果having子句是一个非聚合表达式,它将根据从组中任意选择的行进行计算。having表达式可能引用不在结果中的值,甚至聚合函数。
如果 HAVING sum(shares) > 0 如果包含在查询中(在分组依据之后),则不会首先选择行。
我知道这不是对具体问题的回答。我想 del 以索引作为参数。我脑海里有一个老师的声音在说,不要在列表被迭代时改变它。

相关问题