我需要从一个名为序列的列中选择最大值,这是varchar。值列为1-1,1-2,1-3,2-1,2-2,2-3,3-1,3-2,3-3等。我如何删除"-“(必要时转换为int )才能使用最大特征?当前,尝试选择max(序列)返回所有记录。
SELECT MAX(regexp_replace(Sequence, '-', '')), Policy
FROM Transactions
WHERE Policy = '1234'
GROUP BY Policy
引发以下错误:
错误42S02错误:函数'REGEXP_REPLACE(VARCHAR,未知,未知)‘不存在,无法识别满足您可能需要添加显式类型的参数类型的函数*/
示例表:
预期结果:
发布于 2016-01-12 02:17:41
也许您可以只使用字符串最大值:
SELECT MAX(Sequence), Policy
FROM Transactions
WHERE Policy = '1234'
GROUP BY Policy;
这适用于所提供的数据。如果它不能工作,因为您有类似于'1-10'
的值,那么您可以将其转换为浮点数或十进制:
SELECT MAX(REPLACE(Sequence, '-', '.')::numeric), Policy
FROM Transactions
WHERE Policy = '1234'
GROUP BY Policy;
https://stackoverflow.com/questions/34734480
复制相似问题