Discord Py中SQL ORDER BY排序异常问题求助
问题分析与解决办法
问题根源:你的SQL语句里,
ORDER BY Punktestand DESC是对原始表中的Punktestand字段排序,而非你汇总后的sum(Punktestand)结果。GROUP BY分组后,原字段Punktestand的值是每组内随机一条记录的数值,用它排序自然会出现顺序混乱的情况。修复方案:把ORDER BY的字段改成汇总后的结果,两种写法都可行:
- 给sum结果起别名,用别名排序:
SELECT ID, sum(Punktestand) AS total_points FROM Mitglieder GROUP BY ID ORDER BY total_points DESC LIMIT 35 - 直接用sum表达式排序:
SELECT ID, sum(Punktestand) FROM Mitglieder GROUP BY ID ORDER BY sum(Punktestand) DESC LIMIT 35
- 给sum结果起别名,用别名排序:
对应Python代码的调整:如果用第一种带别名的写法,遍历游标时要匹配别名变量:
async for ID, total_points in cursor: desc += f"{counter}. <@{ID}> ## {total_points} Punkt(e)\n" counter += 1
内容的提问来源于stack exchange,提问作者Mrcl
相关产品推荐
相关产品推荐

