使用INNER JOIN检查MYSQL QUERY中的条件和模式计算

时间:2015-01-04 09:03:40

标签: php mysql database

SELECT 
    IF( trade_data.action =  'BUY' )  AVG( trade.data.price) AS  'BUYSUM',
    IF( trade_data.action =  'SELL' ) AVG( trade.data.price)  AS  'BUYSELL',
    AVG( trade_data.percent ) AS peravg, symbol.id as sy_id 
FROM trade_data
INNER JOIN symbol ON trade_data.symbol = symbol.id
GROUP BY symbol.id

我正在尝试计算行价AVG()并想在我的查询中检查一些条件。 正如您在查询中看到的那样。我在查询中需要使用Inner JOIN或任何内容的相同条件。 INNER向我提供数据但不计算任何事情。

1 个答案:

答案 0 :(得分:0)

您需要以这种方式将IF作为AVG函数的参数:

SELECT
   AVG( IF( trade_data.action = 'BUY', trade.data.price, NULL )) AS 'BUYSUM',
   AVG( IF( trade_data.action = 'SELL', trade.data.price, NULL)) AS 'BUYSELL',
   AVG( trade_data.percent ) AS peravg, 
   symbol.id as sy_id
FROM trade_data
INNER JOIN symbol ON trade_data.symbol = symbol.id
GROUP BY symbol.id