【问题标题】:SQL group by precission for floats浮点数的 SQL 分组精度
【发布时间】:2021-11-01 13:39:52
【问题描述】:

我遇到了一个有点奇怪的问题。我需要按定义的精度对 SQL 结果进行分组。数据库系统是 PostgreSQL,我们总共有几亿个值。

例如,假设我有以下群众的列表

  1. 1.0005
  2. 1.0010
  3. 3.0000
  4. 4.0016
  5. 4.0014

这些都是 Dalton 中的化学质量,我想在一个物化视图中按 +/-5 mDa 和在另一个物化视图中按 +/- 10mDa 对它们进行分组。所以 0.0005 和 0.0010。

有人可以帮忙吗?

【问题讨论】:

  • 提示:SELECT TRUNC(4.0016 * 10000 / 5), TRUNC(4.0014 * 10000 / 5), TRUNC(4.0016 * 10000 / 10), TRUNC(4.0014 * 10000 / 10).
  • 你的问题不清楚,给我们一些期望输出的例子
  • 它们实际上是浮点型还是十进制类型?

标签: sql postgresql


【解决方案1】:

感谢@Jeroen Mostert,这似乎可以解决问题。

从 result_annotations_msms racm 中选择 avg(ion) 作为 ion,sum(intensity) 作为强度,其中 "method" = 'a' and target_id = 'b' group by TRUNC(ion * 1000 / 5)

【讨论】:

    猜你喜欢
    • 2017-02-19
    • 2012-06-23
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    相关资源
    最近更新 更多