2010-02-09 2 views
2

주문이라는 단일 테이블이 있습니다. 가격, 유형 및 입찰에 대해 신경 쓰이는 3 개의 입력란이 있습니다. 입찰은 뭔가 주문하거나 판매 할 것인지에 따라 0 또는 1이있는 int입니다. 1은 살, 0은 살다. 나는 100 개 구별 유형은 구매 및 판매 주문의 평균 가격 사이에 큰 차이가있는 찾으려고 노력하고있어두 평균의 차이로 정렬

주문

|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| 

.

나는 이것을하는 방법에 대해 잘 모릅니다. 구매 또는 판매 주문에 대해 평균 가격으로 주문할 수 있음을 알고 있지만 그 차이로 주문해야합니다. 그게 중요하다면 나는 mysql을 사용하고있다.

답변

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; 
관련 문제