【问题标题】:Convert scientific notation to float after sum() in Bigquery在 Bigquery 中的 sum() 之后将科学记数法转换为浮点数
【发布时间】:2019-03-12 17:30:19
【问题描述】:

我将收入浮动值作为字符串。在执行一个简单的查询后:

SELECT
    EXTRACT(date FROM time) date,
    SUM(CAST(revenue AS FLOAT64)) number
FROM
    `mytable`
GROUP BY date
ORDER BY date DESC

我知道了:

2019-03-11    3.2172407478999996E8
2019-03-10    2.3065347E7

等等。

问题是 - 如何将这些值转换为浮点数?我知道堆栈上已经发布了相同类型的问题,但没有一个能够让我找到正确的解决方案。

【问题讨论】:

    标签: sql formatting google-bigquery string-formatting scientific-notation


    【解决方案1】:

    该值已经是一个浮点数,只是FORMAT它:

    SELECT FORMAT('%.2f', 3.2172407478999996E8)
    -- 321724074.79
    

    PS:如果收入是某种货币/财务计算,则不要转换为浮动;改用十进制数据类型。

    【讨论】:

      【解决方案2】:

      我想如果你转换成一个字符串,你会得到值:

      CAST(SUM(revenue) AS string) as number
      

      numeric:

      CAST(SUM(revenue) AS numeric) as number
      

      【讨论】:

      • 是的,好像一直都在表面上
      【解决方案3】:

      INTEGER 铸造怎么样

      SELECT
          EXTRACT(date FROM time) date,
          SUM(CAST(revenue AS INTEGER)) number
      FROM
          `mytable`
      GROUP BY date
      ORDER BY date DESC
      

      【讨论】:

        猜你喜欢
        • 2014-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-27
        • 2011-11-19
        • 1970-01-01
        • 2015-07-03
        • 2014-07-01
        相关资源
        最近更新 更多