【问题标题】:Redshift SQL is there a way to only sum numeric entries from a column that has a mixture of numbers and text stringsRedshift SQL 有没有办法只对混合了数字和文本字符串的列中的数字条目求和
【发布时间】:2018-12-06 02:59:21
【问题描述】:

我有一个列 my_column 混合了数字和字符串

1,
2,
hi,
4,
hello

有没有办法只对redshift sql中该列的数值求和?

谢谢

【问题讨论】:

    标签: sql amazon-redshift


    【解决方案1】:

    根据

    https://blog.fishtownanalytics.com/how-to-safely-convert-strings-to-integers-in-redshift-a4d7aa39c70

    以下应该有效:

    SELECT SUM(
        case
          when trim(my_column) ~ '^[0-9]+$' then trim(my_column)
          else null 
        end::int
      ) sum_ints
    FROM
      my_table
    

    【讨论】:

    • 谢谢!这是一个巨大的帮助,感谢您的建议,我学到了一些关于 REGEX 的知识
    【解决方案2】:

    题外话,但如果您的列中有混合内容,那么您的数据模型和物理实现可能需要一些工作。

    如果您为 cpu 付费,在我看来,您应该至少投入一些精力来减少“解决”可能较差的物理数据模型所花费的周期数。

    【讨论】:

    • 欢迎来到本站!只是一个小提示,有些人会认为这在技术上更适合作为对问题的评论而不是答案发布..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    • 2020-04-27
    • 2023-03-16
    相关资源
    最近更新 更多