Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Sqlite3 Python中查找多个列的平均值并按降序排序_Python_Sql_Sqlite - Fatal编程技术网

在Sqlite3 Python中查找多个列的平均值并按降序排序

在Sqlite3 Python中查找多个列的平均值并按降序排序,python,sql,sqlite,Python,Sql,Sqlite,我试图找到三列的平均值,并按降序排列。我对SQL比较新,但我已经详细研究了这一点,但我仍然不确定如何找到三列的平均值。下面是代码 import sqlite3 connection = sqlite3.connect("class1.db") cursor = connection.cursor() cursor.execute("SELECT*FROM class1 avg (score1+score2+score3) DESC") print("Class 1:") result = cur

我试图找到三列的平均值,并按降序排列。我对SQL比较新,但我已经详细研究了这一点,但我仍然不确定如何找到三列的平均值。下面是代码

import sqlite3
connection = sqlite3.connect("class1.db")
cursor = connection.cursor()
cursor.execute("SELECT*FROM class1 avg (score1+score2+score3) DESC")
print("Class 1:")
result = cursor.fetchall() 
for r in result:
    print(r)
这是返回的错误

Traceback (most recent call last):
  File "F:\Adair,Rowan CA2\Task 3\Code\DisplayTablesAverage.py", line 4, in <module>
    cursor.execute("SELECT*FROM class1 avg (score1+score2+score3) DESC")
sqlite3.OperationalError: near "(": syntax error

如果要返回平均值,必须将其放入SELECT子句中。然后使用orderby也按此顺序进行排序

SELECT surname, forename, AVG(score1+score2+score3) AS avg
FROM class1
GROUP BY surname, forename
ORDER BY avg DESC

请参考此处的语法图,将平均值单独作为浮点数返回,但我也希望其他两个Column的姓氏firstname也返回,您将在问题中看到,我还添加了表代码。
SELECT surname, forename, AVG(score1+score2+score3) AS avg
FROM class1
GROUP BY surname, forename
ORDER BY avg DESC