按收入对交易进行排序,收入是MySQL中orders表行的总和

按收入对交易进行排序,收入是MySQL中orders表行的总和,mysql,sql,Mysql,Sql,好吧,我一直质疑这个,但直到今天才真正需要它 通常情况下,我会抓取所有交易,逐一检查,然后从与此交易相关的所有订单中找到总额(金额)。(菲律宾) 然后我会做一个简单的uasort(),它工作得很好 但是现在我需要用一个sql查询来完成这一切 这就是我尝试过的: SELECT deals.ID, SUM(orders.amount) AS revenue FROM deals JOIN orders ON (orders.deal_id = deals.id) ORDER BY revenue D

好吧,我一直质疑这个,但直到今天才真正需要它

通常情况下,我会抓取所有交易,逐一检查,然后从与此交易相关的所有订单中找到总额(金额)。(菲律宾)

然后我会做一个简单的uasort(),它工作得很好

但是现在我需要用一个sql查询来完成这一切

这就是我尝试过的:

SELECT deals.ID, SUM(orders.amount) AS revenue FROM deals
JOIN orders ON (orders.deal_id = deals.id)
ORDER BY revenue DESC
现在这给了我一行,一个“随机”交易ID,一个更大的收入数字

我怀疑收入中的这个数字是所有金额列的总和,而不是这个特定的交易ID

我想要的是每个交易ID对应一行,并且在revenue列中使用正确的数字,所有行都按DESC排序


如何做到这一点?要对交易进行排序,请从其收入(自定义列)-这是各交易id行中所有金额列的总和。

缺少
分组依据
子句

SELECT  deals.ID, SUM(orders.amount) AS revenue 
FROM    deals
        INNER JOIN orders 
            ON orders.deal_id = deals.id
GROUP BY deals.ID
ORDER BY revenue DESC