【问题标题】:SQL selecting multiple MAX and MIN - PythonSQL选择多个MAX和MIN - Python
【发布时间】:2015-07-04 22:12:10
【问题描述】:

我有一个程序可以在数据库中存储学生的分数。我想为每个学生选择最高分。目前,只返回所有学生中得分最高的一名学生,而不是每个学生的最高分。谁能帮我解决这个问题? (仅供参考,有一个“分数”列,其中存储了分数列表)

def ClassSort():
myFile = sqlite3.connect("scores.db")
c = myFile.cursor()

clear()
classNo = input("Enter the class number you would like to sort... ")
clear()
type = input("How would you like to sort ? \n 1 - Highest score, with students in alphabetical order \n 2 - Highest score, highest to lowest \n 3 - Average score, highest to lowest \n... ")

if type == "1":
    c.execute('SELECT MIN(score), name FROM scores WHERE classNo = (?)', (classNo,))                
if type == "2":
    c.execute('SELECT MAX(score), name FROM scores WHERE classNo = (?)', (classNo,))
if type == "3":
    c.execute('SELECT AVG(score), name FROM scores WHERE classNo = (?)', (classNo,))        

row = c.fetchall()
row = ', '.join(map(str, row))
print(row)

myFile.commit()
myFile.close()

【问题讨论】:

    标签: python sql database sqlite


    【解决方案1】:

    您需要添加GROUP BY 语句。 sql 中的聚合函数通常与GROUP BY 一起使用最有用。

    SELECT MAX(score), name FROM scores WHERE classNo = (?) GROUP BY name
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多