确定指定数字的范围类别

Posted

技术标签:

【中文标题】确定指定数字的范围类别【英文标题】:Determine the range category of a specified number 【发布时间】:2008-11-04 19:21:27 【问题描述】:

所以我有一列有不同的数字,并希望在 30 分钟内按范围对它们进行分类。所以 5 是 0-30,697 是 690-720,169 是 150-180。我首先考虑做一个案例陈述,但看起来 Access 2003 不支持它。是否有某种算法可以确定范围?最好在查询中完成。

谢谢。

【问题讨论】:

【参考方案1】:

使用 Int 函数将 (number / 30) 的整数部分乘以 30 得到下限,然后将该数字加上 30 得到上限。

示例

Int(5 / 30) = 0 * 30 = 0
Int(697 / 30) = 23 * 30 = 690

【讨论】:

【参考方案2】:

使用 /(整数除法)和 *(乘法)。 5/30*30 = 0 697/30*30 = 690 169/30*30 = 150 ...

【讨论】:

【参考方案3】:

让 x 成为您想要分类的值的列,即您拥有的伪 SQL:

select ((x/30)*30) as minrange,
(((x/30)+1)*30) as maxrange
from yourtable

(你应该取除法的整数部分)。 希望这会有所帮助。

【讨论】:

【参考方案4】:

这是相当直截了当的。您可以使用以下内容。

(number \ 30) * 30

这将为您提供范围的较低索引。它确实有一个问题,即 30、720、180 等将作为自己返回。这意味着您的范围要么需要为 0-29、690-719 等,要么让您的调用者考虑到这一点。

这假设您使用的是 VBA,其中 '\' 运算符仅返回商。查看更多关于 VB 操作符here

【讨论】:

以上是关于确定指定数字的范围类别的主要内容,如果未能解决你的问题,请参考以下文章

通过将数字分组到一个范围内在 matlab / octave 中绘图

怎样用java产生一个指定范围的随机数?

怎样用java产生一个指定范围的随机数?

在指定数字范围内,随机获取n个不重复数字

JAVA怎么实现从指定范围随机取不重复的6个数字

postgresql中的范围序列