如果应用了条件,那么应该执行查询

kmbjn2e3  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(351)

我想对那些只有(买入-卖出利率)=结果>0的列求和。
换句话说,如果 buy_rate 大于 sell_rate ,那么 buy_rate - sell_rate = profit ,将此计算应用于所有行并将所有结果相加。

DB::table('finaltrade')

      ->select(DB::raw("SUM(ABS(buy_rate - sell_rate)) AS total_profit"))
      ->get();
``` `finaltrades` 表结构:

id user_id exchange_id market_id symbol_id buy_datetime sell_datetime buy_rate sell_rate quantities


1 1 1 1 96 2018-05-25 18:13:26 0000-00-00 00:00:00 2205 0 100
2 1 1 1 96 0000-00-00 00:00:00 2018-05-25 18:13:59 0 6680 100
3 4 1 1 23 2018-05-25 18:16:27 0000-00-00 00:00:00 0 0 10
4 1 1 1 96 2018-05-25 18:13:59 0000-00-00 00:00:00 50351 0 30
5 1 1 1 15 0000-00-00 00:00:00 2018-05-25 18:34:46 0 100 150
6 4 1 1 573 2018-05-26 09:29:17 2018-05-27 03:10:09 10 10 10
7 1 1 1 15 2018-05-11 09:30:54 2018-05-25 18:34:56 40 100 40

l7wslrjt

l7wslrjt1#

在sql中,我认为您需要:

select sum(buy_rate - sell_rate) as profit
from finaltrade
where buy_rate > sell_rate;

如果你不想 where 子句,然后使用条件聚合:

select sum(case when buy_rate > sell_rate then buy_rate - sell_rate else 0 end) as profit
from finaltrade;
ojsjcaue

ojsjcaue2#

你可以做:

select sum((buy_rate > sell_rate)*(buy_rate - sell_rate)) as profit from finaltrade;

相关问题