当试图左连接两个临时表时,我得到了算术溢出错误。在进行并集时,没有问题,当我将select语句更改为不使用求和函数时也没有问题。这是我的两张table:
SELECT SUM(count) count
, EventType
, month
FROM #engine_final
GROUP BY EventType
, month
UNION ALL
SELECT SUM(count) count
, EventType
, month
FROM #circumvent_final
GROUP BY EventType
, month
结果如下:
因此,我尝试使用以下查询对我的计数进行求和,按月份分组:
SELECT SUM(ef.count) AS EngineStarts
, SUM(cf.count) AS Circumventions
FROM #engine_final ef
LEFT JOIN #circumvent_final cf ON ef.month = cf.month
但这是我面对错误的时候。我想也许我已经达到了int的极限,但是我的数字只有2.6亿,所以这不可能。我错过了什么?
1条答案
按热度按时间busg9geu1#
您的联接将行相乘。您应该先在子查询中预聚合,然后加入:
我不确定你是否需要
where
子查询中要在eventType
-如果需要的话,你可以很容易地添加它们。如果你有几个月的时间
cf
那些不在ef
,另一方面,你也可以考虑FULL JOIN
而不是LEFT JOIN
: