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
给我数据,但不计算任何东西。
您需要以这种方式将 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