好的,我把它从列改为行;-)
我在为学生们保存分数。我有一个名为“grade”的mysql表,其中有三列名为“subject”、“points”和“userid”,其中18行有不同的主题,每个主题可以有20、17.5、15或12.5中的一个值
因此,所有用户都有相同的“主题”,但可以有不同的“点”
"subject" "points" "userId"
svenska 20 23
engelska 15 23
bild 12.5 23
biologi 15 23
matte 17.5 23
fysik 20 23
historia 12.5 23
hemkunskap 15 23
kemi 17.5 23
historia 20 23
idrott 12.5 23
moderanspråk 15 23
modersmål 17.5 23
musik 12.5 23
religion 20 23
samhällskunskap 15 23
slöjd 12.5 23
teknik 17.5 23
我需要从18个“受试者”中具有最高值的16个“受试者”中选择值并求和。
我该怎么做?非常感谢您的意见,谢谢。
2条答案
按热度按时间gwbalxhn1#
您可以使用子查询来获取16行,其中点最多:
如果希望每个用户都这样,则可以使用窗口函数:
aelbi1ox2#
试试这个: