Redshift - 不支持的 PIVOT 列类型:文本

问题描述 投票:0回答:2

我查看了这个主题:错误:不支持的 PIVOT 列类型:文本但不幸的是它没有为我提供答案。

我有一个简单的表格,如下所示:

user_id | type | reminder_type | sent_at
----------------------------------------------------
user_a  | MID  | REMINDER_1    | 2022-02-01 15:00:00
user_a  | MID  | REMINDER_2    | 2022-02-15 06:00:00

然后我尝试执行此查询:

SELECT
  *
FROM table
PIVOT (
  MIN(sent_at) FOR reminder_type IN('REMINDER_1', 'REMINDER_2')
)

为了得到以下结果:

user_id | type | reminder_1          | reminder_2
----------------------------------------------------------
user_a  | MID  | 2022-02-01 15:00:00 | 2022-02-15 06:00:00

它给了我上述错误:enter image description here

我无法理解它,并且 AWS 文档没有提供有关该错误的任何详细信息

pivot amazon-redshift
2个回答
8
投票

reminder_type
REGEXP_REPLACE
的结果,导致类型
VARCHAR(101)

当我明确地将列转换为

VARCHAR

时,它突然起作用了

REGEXP_REPLACE(remin_type, '<regex>', '') AS reminder_type
不起作用

REGEXP_REPLACE(remin_type, '<regex>', '')::VARCHAR AS reminder_type
完美运作


0
投票

谢谢老兄,对我来说也工作得很好,很好的提示(这对我来说是一个子字符串,我认为如果“表”中有一个函数,它就不会理解/丢失类型。 谢谢

© www.soinside.com 2019 - 2024. All rights reserved.