我正在做一个高分页面,供用户积累他们的分数。在数据库表下,有username
,score
和difflevel
(难度级别)。
用户名将是他们用于登录和尝试测验的内容,得分将是他们从问题中收到多少分数。
我的问题是你如何将数据库值加起来,例如,“Tom今天从测验中得到了5分,第二天他得了3分,我希望累计总和为5 + 3 = 8。但是在数据库中只有他的5和3的输入。
目前,我只能展示最佳得分手,但高分并不累积。
是否可以添加它们(使它们累积)并将其显示在网页上?我需要这些信息,因为我想展示一个月或一年的前5名得分手。
答案 0 :(得分:2)
SQL(特别是MySQL,在您的情况下)有一组称为聚合函数的函数,它们从列中获取多个值并生成单个结果。在您的情况下,您将使用sum
功能。您可以将这些函数与group by
子句一起使用,以分隔另一列的每个不同值的结果。所以,在你的情况下:
SELECT username, SUM(score)
FROM my_table
GROUP BY username
ORDER BY 2 DESC