在Sqlite3 Python中查找多个列的平均值并按降序排序
我试图找到三列的平均值,并按降序排列。我对SQL比较新,但我已经详细研究了这一点,但我仍然不确定如何找到三列的平均值。下面是代码在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
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