现在,我正在执行以下操作:

c.execute("SELECT AVG(col1) from table")
avg_c1 = c.fetchall()[0]
c.execute("SELECT AVG(col2) from table")
avg_c2 = c.fetchall()[0]
c.execute("SELECT AVG(col3) from table")
avg_c3 = c.fetchall()[0]
c.execute("SELECT AVG(col4) from table")
avg_c4 = c.fetchall()[0]
c.execute("SELECT AVG(col5) from table")
avg_c5 = c.fetchall()[0]
c.execute("SELECT AVG(col6) from table")
avg_c6 = c.fetchall()[0]


我想通过总结这些重复的行来缩短代码。但是我尝试过

c.execute("SELECT AVG(col1,col2,col3,col4,col5,col6) from table")
avg = c.fetchall()[0]


它说AVG()的参数数目错误。

格式化我的代码的正确方法是什么?谢谢!

最佳答案

您可以使用UNION ALL

SELECT AVG(col)
FROM (
  SELECT col1 AS col FROM tab UNION ALL
  SELECT col2        FROM tab UNION ALL
  ...
  SELECT col6        FROM tab
) s

关于python - 如何总结列的多个平均值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57231413/

10-11 22:45
查看更多