Mysql 如何计算新等级?
i、 e.当新交易在当前日期交易列表中,但不在前一日期交易列表中时。 我试过了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-
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,没有问题,我很乐意帮助。快乐编码!