gpt4 book ai didi

python - Python 的 itertools.combinations() 的 SQL 版本

转载 作者:太空宇宙 更新时间:2023-11-04 05:08:06 25 4
gpt4 key购买 nike

我正在尝试在 SQL 中复制一个 Python 函数,但我在考虑表而不是循环/迭代方面遇到了麻烦。

import itertools
rangeStart = 1
rangeEnd = 20
rangeStep = 2
outputSize = 3

lst = range(rangeStart, rangeEnd, rangeStep)

list = list(itertools.combinations(lst, outputSize))
print(len(list))

我如何在 SQL 中复制上述 python 代码的输出,同时仍然允许输入(以便能够绑定(bind)到用户界面中的输入字段)?

具体来说,输出应该是排列,而不是组合。我基本上是在尝试从 GUI 获取一些输入,它们在其中输入范围(即 0,20)、值的类型(偶数、奇数或全部)以及输出中每个元组的长度。输出是经过排序的元组列表,因此 (1,2,3) 好,(2,3,1) 或 (1,3,2) 不好。元组的值也从左到右递增,因此 (2,4,6) 是好的,但 (6,4,2) 不是。元组中的值也是唯一的,所以 (4,4,6) 不好。

最佳答案

使用递归 cte 生成从 1 到 20 的奇数,然后生成一系列交叉连接

with t(val) as (select 1 union all select val+2 from t where val<19)
select *
from t t1
cross join t t2
cross join t t3
where t1.val<t2.val and t2.val<t3.val

这会以行的形式生成您当前拥有的列表中的元组。

Sample Demo

关于python - Python 的 itertools.combinations() 的 SQL 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43810312/

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