2016-04-05 14 views
-1

Ich versuche den Durchschnitt von drei Spalten zu finden und sie in absteigender Reihenfolge zu ordnen. Ich bin neuer zu SQL, aber ich habe mich intensiv damit beschäftigt, aber ich bin immer noch unsicher, wie man den Durchschnitt von drei Spalten findet. Unten ist der Code.Den Durchschnitt mehrerer Spalten in Sqlite3 Python finden und in absteigender Reihenfolge sortieren

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) 

Dies ist der Fehler, der zurückgegeben wird.

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 

Jede Hilfe mit diesem würde sehr geschätzt werden. UPDATE: Das Programm kann nun den Durchschnittswert zurückgeben, gibt aber nur den Durchschnittswert zurück. Ich muss auch die zwei anderen Spalten (Nachname, Vorname) zurückgeben. Hier ist der Tabellencode.

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

das Syntaxdiagramm Consult bei https://www.sqlite.org/lang_select.html –

Antwort

2

Wenn Sie die durchschnittliche zurückkehren möchten, müssen Sie, dass in der SELECT Klausel setzen. Dann verwenden Sie ORDER BY, um sie auch so zu bestellen.

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

Diese zur Rückführung des durchschnittlichen allein als Schwimmer funktioniert, aber ich möchte auch die anderen beiden Säulen (Name, Vorname) zu auch zurückgegeben werden, werden Sie in der Frage sehen, ich habe auch den Tabellencode hinzugefügt. –

+0

Ich habe die Antwort aktualisiert. – Barmar

+0

Bekannt, vielen Dank –

Verwandte Themen