我查看了这个主题:错误:不支持的 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
我无法理解它,并且 AWS 文档没有提供有关该错误的任何详细信息
列
reminder_type
是 REGEXP_REPLACE
的结果,导致类型 VARCHAR(101)
。
当我明确地将列转换为
VARCHAR
时,它突然起作用了
REGEXP_REPLACE(remin_type, '<regex>', '') AS reminder_type
不起作用
REGEXP_REPLACE(remin_type, '<regex>', '')::VARCHAR AS reminder_type
完美运作
谢谢老兄,对我来说也工作得很好,很好的提示(这对我来说是一个子字符串,我认为如果“表”中有一个函数,它就不会理解/丢失类型。 谢谢