我已经解决了以下问题:
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列并按我想要的方式排序?
答案 0 :(得分:1)
当你写SELECT Event_id, SUM(Money) AS Total Money
时,你给了别名Total Money to Sum(Money)。
如果你用引号写出总金额,那么你就把它当作字符串,这是错误的。
答案 1 :(得分:0)
SELECT Event_id, SUM(Money) AS `Total Money`
FROM prize
GROUP BY Event_id
ORDER BY `Total Money` DESC;
按'总钱'排序基本上是将一些字符串命令给MySQL。当您在引号中放入任何内容时,您将创建一个字符串。创建别名时,处理以某些保留字命名的列名(例如user
) - 使用反引号:
`user`
答案 2 :(得分:0)
单引号定义了一个字符串值,因此在您的订单中,您并没有说order by this column
您说order by the string 'Total Money'
当然不会有效。
如果你真的想要使用空格,可以使用反引号而不是单引号,如
ORDER BY `Total Money`