mysql desc 对我不起作用

标签 mysql sql

它应该列出一个列表,并在顶部列出最高百分比..但它没有 https://gyazo.com/ecde864ef09115b8b119eba8a39ecd68这是我运行时的图片

这里是代码。怎么了?

$sql = "SELECT band, concat(round(sum(punten) *100 /
(SELECT sum(punten) FROM bands)) , \"%\") AS percent
FROM bands
WHERE punten>0
GROUP BY band 
ORDER BY percent DESC;";

最佳答案

百分比列是一个字符串,因此它们按字典顺序排序(例如,8 被视为大于 26,因为“8”在“2”之后)。相反,您可以在连接之前对数字部分进行排序。这可以通过当前查询来完成,但是将总的 punten 增加到子查询会更优雅:

SELECT     band, CONCAT(ROUND(band_punten) * 100 / total_punten), '%') AS percent
FROM       (SELECT   band, SUM(punten) AS band_punten
            FROM     bands
            WHERE    punten > 0
            GROUP BY band) a
CROSS JOIN (SELECT SUM(punten) AS total_punten FROM bands) b
ORDER BY   band_punten DESC

关于mysql desc 对我不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36796688/

相关文章:

mySQL 全文搜索具有特定首字母的单词

mysql - 不要在我的 mysqli 查询上显示过期结果

mysql - 根据计数对用户进行排名

mysql - 如何只显示负值,而让正值全部显示为0?

sql - DBMS 上下文中的 BLOB 到底是什么

mysql - 计算同一查询中的两列

mysql - 如何使用动态Where子句编写查询

MySQL/Python学习错误

python - 如何使用python查询SQlite,然后比较查询结果?

sql - 如何使用 MAX() 在 SQL 中多次出现 Max 值