繁体   English   中英

INNER join返回不返回总结果

[英]INNER join Return Not Returning total Results

trade_data表


id符号动作价格百分比


1 1购买3.4 50


2 1卖3.8 25


3 2卖45 75


3 2买25.2 50


符号表


身份证名


1个RCC


2 REG



选择SUM(IF(trade_data.action ='买入,价格,0))AS'购买,SUM(IF(trade_data.action ='卖出',价格,0))AS'买入',AVG(trade_data.percent )AS标记,符号。 *从trade_data INNER JOIN symbol打开trade_data.symbol = symbol.id

此查询给我一行,但在这种情况下有两行可用。 但是当我更改查询为

SELECT trade_data.* , symbol. * 
FROM  `trade_data` 
INNER JOIN  `symbol` ON trade_data.symbol = symbol.id

然后此查询给我确切2行。

将group by与聚合函数ex一起使用。

SELECT SUM( IF( trade_data.action =  'BUY', price, 0 ) ) AS  'BUYSUM', SUM( IF( trade_data.action =  'SELL', price, 0 ) ) AS  'BUYSELL', AVG( trade_data.percent ) AS peravg, symbol. * 

FROM trade_data INNER JOIN symbol打开trade_data.symbol = symbol.id按symbol.id分组

mysql中的SUM()为您提供结果行中指定列的总和。 因此,在这里,SUM(price)将为您提供总价格,并添加每行的价格值。 总数始终是单个值,因此您将获得单行输出。

希望这会有所帮助。

您正在使用AVG()SUM()函数,这就是为什么您得到单个命令

The AVG() Function
The AVG() function returns the average value of a numeric column.


The SUM() Function
The SUM() function returns the total sum of a numeric column.

如果你有多个trade_data.symbol = symbol.id (超过1个ID),您可以使用GROUP BY获得类似的ID每个记录的总数和平均数,因为你只有1相同symbol.idtrade_data.symbol你会仅获得一条记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM