Mysql 如何计算新等级?

Mysql 如何计算新等级?,mysql,sql,Mysql,Sql,i、 e.当新交易在当前日期交易列表中,但不在前一日期交易列表中时。 我试过了 SELECT COUNT(*) AS "Number of New Trades" FROM TRADE_REPORT WHERE business_date='2018-05-08' and excluded='false' MINUS SELECT COUNT(*) AS "Number of New Trades" FROM TRADE_REPORT WHERE business_date='2018-05-

i、 e.当新交易在当前日期交易列表中,但不在前一日期交易列表中时。 我试过了

SELECT COUNT(*) AS "Number of New Trades"
FROM  TRADE_REPORT
WHERE business_date='2018-05-08' and excluded='false'
MINUS
SELECT COUNT(*) AS "Number of New Trades"
FROM TRADE_REPORT
WHERE business_date='2018-05-07'
and excluded='false'

但它不起作用

否。
减号
是一个集合运算符,而不是算术运算符,甚至在MySQL中也不可用。我想你想要:

select count(*)
from trade_report tr
where tr.business_date = '2018-05-08' and tr.excluded = 'false' and
      not exists (select 1
                  from trade_report tr2
                  where tr2.? = tr.? and
                        tr2.business_date = '2018-05-07' and
                        tr2.excluded = 'false'
                 );

表示您希望从一天到下一天进行比较的id。

考虑一个
不在
子句,它捕获两天之间id的不匹配

SELECT COUNT(*) AS "Number of New Trades"
FROM TRADE_REPORT t1
WHERE t1.business_date='2018-05-08' AND t1.excluded='false'
AND t1.ID NOT IN
    (SELECT sub.ID
     FROM TRADE_REPORT sub
     WHERE sub.business_date='2018-05-07' AND sub.excluded='false')

样本数据和期望的结果确实会有帮助。例如:如果像在'2018-05-07'上一样,我有id为1,2,3,4,5的交易,而在'2018-05-08'上,我有id为1,2,3,4,5,6,7,8的交易,那么对于新的交易,我将在'2018-05-08'的输出中得到6,7,8,没有问题,我很乐意帮助。快乐编码!