[英]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.id
和trade_data.symbol
你会仅获得一条记录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.