gpt4 book ai didi

c# - 为一组随机值生成多个范围

转载 作者:搜寻专家 更新时间:2023-10-30 20:33:05 25 4
gpt4 key购买 nike

给定数据库中的一组随机数值,我如何生成一个有限的范围列表,其中每个范围至少包含一个值?范围不应重叠,理想情况下它们中的值数量相似。理想情况下,它们的边界也应该是 10、100、1000 等的倍数......

例如:

Values: 100,150,180,300,400,500,600,650,700results in4 ranges: 100-180(2), 180-300(1), 300-600(3), 600-800(3)

这如何在 C# 或 T-SQL 中完成?

最佳答案

MS SQL 2005+ 中:

SELECT range, (MIN(getprev) + MIN(value)) / 2 as range_start, (MAX(getnext) + MAX(value)) / 2 AS range_end, COUNT(*) as range_values
FROM (
SELECT value,
NTILE(4) OVER (ORDER BY value ) AS range,
(
SELECT TOP 1 value
FROM values li
WHERE li.value < lo.value
ORDER BY
li.value DESC
) AS getprev,
(
SELECT TOP 1 value
FROM values li
WHERE li.value > lo.value
ORDER BY
li.value
) AS getnext
FROM values lo
) vo
GROUP BY range
ORDER BY range

在你的情况下:

1   100   240   32   240   450   23   450   625   24   625   700   2

关于c# - 为一组随机值生成多个范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/565450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com