MySQL按后求和排序
对于我的一个问题,我已经得出以下结论:MySQL按后求和排序,mysql,sql,sum,sql-order-by,Mysql,Sql,Sum,Sql Order By,对于我的一个问题,我已经得出以下结论: SELECT Event_id, SUM(Money) AS 'Total Money' FROM prize GROUP BY Event_id ORDER BY 'Total Money' DESC; 但是,它不是按总金额排序的。如果我省略“”标记并调用Total_Money列,它可以正常工作: SELECT Event_id, SUM(Money) AS Total_Money FROM prize GROUP BY Event_id ORDER
SELECT Event_id, SUM(Money) AS 'Total Money'
FROM prize
GROUP BY Event_id
ORDER BY 'Total Money' DESC;
但是,它不是按总金额排序的。如果我省略“”标记并调用Total_Money列,它可以正常工作:
SELECT Event_id, SUM(Money) AS Total_Money
FROM prize
GROUP BY Event_id
ORDER BY Total_Money DESC
为什么会这样?
有没有一种方法可以调用列Total Money并按我想要的方式排序
SELECT Event_id, SUM(Money) AS `Total Money`
FROM prize
GROUP BY Event_id
ORDER BY `Total Money` DESC;
按“总金额”排序基本上是指按某个字符串向MySQL排序。当你把任何东西放在引号中时,你就创建了一个字符串。创建别名时,处理以某些保留字命名的列名(例如,user
)-使用反勾号:
`user`
单引号定义了一个字符串值,因此在order by中,您不是说
order by this column
而是说order by字符串“Total Money”
,这当然不起作用
如果你真的想用空格,你可以用倒勾代替单引号,比如
ORDER BY `Total Money`
当您编写
选择Event_id,SUM(Money)AS Total Money
时,您给了一个别名Total Money to SUM(Money)如果你用引号写总金额,那么你将其作为字符串,这是错误的。你使用引号,不要使用引号。使用“character”谢谢klennepette,不知怎的,我在学习中错过了这一点。