【问题标题】:Adding a random number before selecting in SQL在 SQL 中选择之前添加一个随机数
【发布时间】:2014-08-26 21:15:55
【问题描述】:

我正在从 SQL 表中选择数据。所以我会做这样的事情:

select stellarmass
 from galaxies
 where stellarmass between 3.5 and 5.6

我的问题是当前上传的表格没有散布。所以我需要自己做这件事。具体来说,我需要从具有特定 sigma 的高斯分布中选择随机数,并向每个 stellarmass 值添加不同的随机数,然后如果它仍然位于 3.5 和 5.6 之间,我才想选择它。

注意:我知道查询 stellarmass 值表并通过 Python 或类似的方法向其添加散点图很简单,但我需要通过 SQL 来完成。原因是这些值将充当指向我需要从中提取信息的其他表的指针。

提前感谢您的帮助!

【问题讨论】:

  • 你用的是什么数据库?
  • 我假设您的 galaxies 数据集没有一些 10^11 条目,那么您在说什么大小的表?
  • 我正在使用千年数据库,所以它有数百万个条目。我将其缩减为仅使用完整数据集的 0.8%(随机选择的行)
  • 您需要重复选择吗?例如。如果你不时地查询它明天。我在想,如果您使用高斯分布创建了 GalaxyID 和数字表,您可以加入它们并选择所需的行。

标签: sql random gaussian


【解决方案1】:

这可能对您有用,可以从一系列行中获取随机行:

select top 1 stellarmass
from galaxies
where stellarmass between 3.5 and 5.6
order by newid()

要生成随机数并使用它,请查看RAND([seed]) T_SQL 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 2018-03-24
    • 2010-09-08
    • 2012-03-27
    相关资源
    最近更新 更多