求解数据集合问题

flyuniverse_shell 2012-01-11 08:57:24
数据库里有一个表data_table,字段如下:
id name data
1 A 50.2
2 B 1.5
3 C 5.6
4 D 6.2
5 E 6.3
...
...
...

数据上万条,现在想要找data的累积和的集合。比如14=6.2+6.3+1.5,那么累积和等于14的一个id集合是(2,4,5),但是当数量很大的时候人工求解的难度就很大了。求高手指点!谢谢!

如:累积和是1000的集合有哪些?
...全文
91 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyuniverse_shell 2012-01-13
  • 打赏
  • 举报
回复
顶起~
SQL77 2012-01-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 flyuniverse_shell 的回复:]

引用 8 楼 sql77 的回复:
引用 7 楼 flyuniverse_shell 的回复:

楼上的朋友你好,id集合元素个数不一定是3。我只是举例比如14=6.2+6.3+1.5。如果存在12.5,也可以是14=12.5+1.5

那你自己可以写方法定义集合的元素个数,再动态编写表和个数和条件的个数

假如元素格式是100,那计算量太大了,恐怕计算机承受不了。。。。
[/Quote]
那只能是说你的需求需要变更,那还可能是10000个,可能更大,算法的话,可能去算法区问一下像这种类型的该如何最好
flyuniverse_shell 2012-01-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sql77 的回复:]
引用 7 楼 flyuniverse_shell 的回复:

楼上的朋友你好,id集合元素个数不一定是3。我只是举例比如14=6.2+6.3+1.5。如果存在12.5,也可以是14=12.5+1.5

那你自己可以写方法定义集合的元素个数,再动态编写表和个数和条件的个数
[/Quote]
假如元素格式是100,那计算量太大了,恐怕计算机承受不了。。。。
SQL77 2012-01-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 flyuniverse_shell 的回复:]

楼上的朋友你好,id集合元素个数不一定是3。我只是举例比如14=6.2+6.3+1.5。如果存在12.5,也可以是14=12.5+1.5
[/Quote]
那你自己可以写方法定义集合的元素个数,再动态编写表和个数和条件的个数
flyuniverse_shell 2012-01-11
  • 打赏
  • 举报
回复
楼上的朋友你好,id集合元素个数不一定是3。我只是举例比如14=6.2+6.3+1.5。如果存在12.5,也可以是14=12.5+1.5
SQL77 2012-01-11
  • 打赏
  • 举报
回复
最简单的逻辑:
A,B,C 三表连接,再通过你的条件限定,
WHERE A.DATA<=14 AND B.DATA<=14 AND C.DATA<=14 AND A.DATA+B.DATA=C.DATA=14
A.ID<>B.ID AND A.ID<>C.ID AND B.ID<>C.ID
flyuniverse_shell 2012-01-11
  • 打赏
  • 举报
回复
各位大哥,有什么好的方法吗
叶子 2012-01-11
  • 打赏
  • 举报
回复
数据是保存数据和数据关系的,这种算法问题数据库本身不擅长处理。
唐诗三百首 2012-01-11
  • 打赏
  • 举报
回复
排列组合, 前端程序也能做. 或者前端程序做更合适..

数据库端做也行的.
AcHerat 2012-01-11
  • 打赏
  • 举报
回复
楼主先找个高效的算法吧!sql里处理数据量多肯定还是很慢,看看有没其他方法吧!就像楼上说的。
snbxp 2012-01-11
  • 打赏
  • 举报
回复
这种问题,建议转到云计算版块里找答案

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧