我有一个名为orders的表。 它有3个我关心的领域:价格,类型和出价。 Bid是一个0或1的int,具体取决于订单是买入还是卖出。 1是买,0是卖。
订单
|typeID |price |bid|
|1 |10 |0|
|2 |20 |0|
|3 |30 |0|
|4 |50 |0|
|1 |80 |0|
|2 |30 |0|
|3 |50 |0|
|4 |10 |0|
|1 |8 |1|
|2 |7 |1|
|3 |9 |1|
我试图找出哪100种不同类型的买卖订单平均价格差异最大。
我不知道该怎么做。我知道我可以按买入或卖出订单的平均价格订购,但我需要按它们之间的差价订购。如果重要的话,我正在使用mysql。
答案 0 :(得分:1)
我相信这应该有用:
SELECT `typeID`, AVG(IF(`bid`, `price`, 0)) AS `average_buy_price`, AVG(IF(`bid`, 0, `price`)) AS `average_sell_price`,
AVG(IF(`bid`, `price`, 0)) - AVG(IF(`bid`, 0, `price`)) AS `difference`
FROM `orders`
GROUP BY `typeID`
LIMIT 100
ORDER BY `difference` DESC;