数据库中行数的条件(超过 10 个五线谱或少于 10 个五线谱)

青葱年少 python 188

原文标题Condition with number of rows in a database (more than 10 staves or less than 10 staves)

我有一个计算算术平均值的简单代码。在示例中,我们计算 10 个元素的平均值除以 10。

但有时元素小于 10,所以显然我不能除以 10。所以我想确保如果列表中的元素是 10,那么您通常像我一样通过除以 10 来计算平均值。如果列表中的元素少于 10 个,例如有 7 个,我想:

  • 计算列表中的 7 个元素
  • 除以 7(列表中计算的元素)

如何正确编写“如果行 == 10”和“如果行不是 10”?我不知道。还有“rows.count()”是计算行数的正确代码吗?谢谢

conn = sqlite3.connect('/database.db')
cursor = conn.cursor()

#arithmetic average
cursor.execute('SELECT x, y FROM table1 WHERE x = ? LIMIT 10;', [combo])
rows= self.cursor.fetchall()
    
if rows == 10:
    arithmetic_average_10 = sum(int(row[0]) for row in rows) / (10) 
        
if rows not 10:
    count_elements = rows.count()
    arithmetic_average_inferior10 = sum(int(row[0]) for row in rows) / (count_elements)

原文链接:https://stackoverflow.com//questions/71522155/condition-with-number-of-rows-in-a-database-more-than-10-staves-or-less-than-10

回复

我来回复
  • BrokenBenchmark的头像
    BrokenBenchmark 评论

    有两点值得指出:

    1. if 语句不是必需的,因为您的查询将结果限制为十行。您可以删除它们。这也删除了两个不同分支中的两个不同名称的变量,这使得在 if 块之外使用计算的平均值更容易。
    2. 要获取结果中的行数,请使用 len() 。

    这为我们提供了以下代码片段:

    conn = sqlite3.connect('/database.db')
    cursor = connessione.cursor()
    
    #arithmetic average
    cursor.execute('SELECT x, y FROM table1 WHERE x = ? LIMIT 10;', [combo])
    rows= self.cursor.fetchall()
    count_elements = len(rows)
    arithmetic_average_inferior10 = sum(int(row[0]) for row in rows) / (count_elements)
    
    2年前 0条评论