【问题标题】:How do I return a value to 2 decimal places from my SQL calculation?如何从我的 SQL 计算中返回一个保留 2 位小数的值?
【发布时间】:2023-01-19 22:44:11
【问题描述】:

我有以下 sql 语句,我想将“百分比变化”中的值返回到小数点后 2 位

SELECT
  station_name,
  routes,
  ridership_2013,
  ridership_2014,
  ridership_2014 - ridership_2013 AS change_2013_raw,
  ((ridership_2014 - ridership_2013)/ ridership_2013)*100 AS Percent_Change,
FROM
  bigquery-public-data.new_york_subway.subway_ridership_2013_present
WHERE
  ridership_2013 <>0 OR ridership_2014 <>0

我不知道什么时候添加我的综述声明。

【问题讨论】:

  • 这取决于您的 DBMS,以及它在其环境中允许的功能。您可以尝试使用ROUND(&lt;your_computed_val&gt;, 2) 来做到这一点。
  • 请阅读您使用的 sql 标签的 TAG Description,然后根据需要编辑您的问题。

标签: sql function


【解决方案1】:

应该是这样的:

SELECT
  station_name,
  routes,
  ridership_2013,
  ridership_2014,
  ridership_2014 - ridership_2013 AS change_2013_raw,
  ROUND(((ridership_2014 - ridership_2013)/ ridership_2013)*100, 2) AS Percent_Change,
FROM
  bigquery-public-data.new_york_subway.subway_ridership_2013_present
WHERE
  ridership_2013 <>0 OR ridership_2014 <>0

【讨论】:

    【解决方案2】:

    如果您想舍入“percent_change”中的值,则需要将整个计算包含在 ROUND() 函数中。

    对于您的计算,这将如下所示:

    ROUND(((ridership_2014 - ridership_2013)/ ridership_2013) * 100, 2) AS Percent_Change
    

    所以在你的查询中看起来像这样:

    SELECT station_name
    , routes
    , ridership_2013
    , ridership_2014
    , ridership_2014 - ridership_2013 AS change_2013_raw
    , ROUND(((ridership_2014 - ridership_2013)/ ridership_2013) * 100, 2) AS Percent_Change
    FROM bigquery-public-data.new_york_subway.subway_ridership_2013_present 
    WHERE ridership_2013 <> 0 
    OR ridership_2014 <> 0
    

    有关 ROUND() 函数的更多信息,请参阅https://www.w3schools.com/sql/func_sqlserver_round.asp

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-20
      • 2011-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-28
      • 2023-03-05
      • 2021-07-18
      相关资源
      最近更新 更多