我试图找到三列的平均值并按降序排序。我是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
对此的任何帮助将不胜感激。 更新:该程序现在能够返回平均值,但它只返回平均值。我还需要返回另外两列(姓氏,名字)。这是表格代码。
import sqlite3
connection=sqlite3.connect('class1.db')
cursor=connection.cursor()
sql_command1 = """
CREATE TABLE class1 (
surname VARCHAR (20),
forename VARCHAR (20),
score1 INTEGER,
score2 INTEGER,
score3 INTEGER);"""
cursor.execute(sql_command1)
connection.commit()
connection.close()
答案 0 :(得分:2)
如果要返回平均值,则必须将其放在SELECT
子句中。然后使用ORDER BY
按顺序排序。
SELECT surname, forename, AVG(score1+score2+score3) AS avg
FROM class1
GROUP BY surname, forename
ORDER BY avg DESC