从数据库中获得平均成绩

时间:2018-03-10 20:55:42

标签: mysql

我正在制作一个测验系统,我正在努力为用户显示平均成绩。 所以例如,如果我有这样的表:

select * from data where datamap=1 results in:

mapid,Real_0, Real_1, Real_3, Real_4 (these are the column names)

1,1.1,2.1,3.1,4.1

1,1.2,2.2,3.2,4.2

1,1.3,2.3,3.3,4.3

无论如何获得平均成绩?

编辑:我已经将成绩从字母更改为分数,因为我已经意识到您无法获得非数字值的平均值。

我如何进行查询以获得两个问题的平均用户得分?

2 个答案:

答案 0 :(得分:1)

您要求查询,因此简单的答案是

calculator = Tk()
calculator.title("Calculator")
calculator.resizable(0, 0)

#================================================
class Application(Frame):
    def __init__(self, master, *args, **kwargs):
        Frame.__init__(self, master, *args, **kwargs)
        self.createWidgets()
    #================================================
    def createWidgets(self):
        self.sevenButton = Button(self, font=("Helvetica", 11), text="7", 
        borderwidth=0, command=lambda: self.appendToDisplay("7"))
        self.sevenButton.grid(row=1, column=0, sticky="NWNESWSE")

#================================================
app = Application(calculator).grid()
calculator.mainloop()

然而,你的客户会对你的计算感到相当失望 - 从5分中获得5分,100分中的100分与平均5分和100分完全不同!

所以我建议使用百分比而不是原始分数:

Select avg(user_score) 
From {table_name}
Where {your criteria}
Group by user_id

答案 1 :(得分:0)

您可以使用ASCII()将成绩转换为整数,然后使用CHAR()将平均值转换回成绩。

SELECT CHAR(ROUND(AVG(ASCII(`grade`)-65))+65) FROM table

请注意,这不会考虑+。您首先必须确定成绩上+的数值。