在亚马逊红移字符串中计数发生



我需要第一次出现这些字符之一(" 1"," 2"或" 3"),还计算了一个特定字符(" s")的次数发生在他们面前的字符串中。

我进行了此查询:

SELECT
  distinct c1,
  SUBSTRING( c1, REGEXP_INSTR ( c1, '[123]+' ) , 1) as First_123 , 
  REGEXP_INSTR (  SUBSTRING( c1, 1, REGEXP_INSTR ( c1, '[123]+' )) , '[s]') as NumberOfS
FROM table
  • 第一列是字符串
  • 第二列是首先发生的数字(1 2或3)
  • 第三列是(1 2或3)之前字符串中的" S"字符的数量。

如果有超过1's'。

在字符串中找不到1 2或3时,我该如何使其正确计数,还可以计算所有" S"字符?

select  c1
       ,regexp_substr (c1,'[1-3]')  as first_123 
       ,regexp_count  (c1,'s[1-3]') as single_s_before_123
       ,regexp_count  (c1,'s')      as all_s
from    table

P.S。我目前无法访问Amazon-Redshift

相关内容

  • 没有找到相关文章

最新更新