【发布时间】:2018-06-05 20:01:06
【问题描述】:
我正在Amazon Redshift 上运行以下非常简单的查询:
SELECT member_id,
COUNT(DISTINCT TO_CHAR(created_at,'YYYY-MM-DD')) AS days
FROM ads.fbs_modality_staging
WHERE member_id in (select memberid from auth.members)
group by member_id
但这给了我以下错误:
An error occurred when executing the SQL command:
SELECT member_id,
COUNT(DISTINCT TO_CHAR(created_at,'YYYY-MM-DD')) AS days
FROM ads.fbs_modality_staging
WHERE member_id IN (SELEC...
[Amazon](500310) Invalid operation: Overflow (Integer valid range -2147483648 to 2147483647)
Details:
-----------------------------------------------
error: Overflow (Integer valid range -2147483648 to 2147483647)
code: 1207
context: Value: '2952163128494839000', Character: '8'
query: 2748804
location: :0
process: query5_95_2748804 [pid=0]
-----------------------------------------------;
Execution time: 2.11s
1 statement failed.
我检查了一下,表 members 没有“2952163128494839000”的 memberid。我还尝试使用CONVERT 和CAST 函数将memberid 转换为integer,但我得到了同样的错误。
为什么我会遇到这个错误,我该如何解决?
【问题讨论】:
-
如果
members没有超出范围的memberid,那么可能modality_staging有一个超出范围的member_id。你说你在哪一列上使用了 CAST/CONVERT:。您是否将members.memberid转换为与modality_staging.member_id相同的类型? -
我在
convert和modality_staging.member_id和members.memberid上都使用了convert -
转换成什么?
modality_staging.member_id是什么类型?这可能是您应该转换的内容。
标签: sql amazon-redshift