gpt4 book ai didi

sql - 在 SQL 中,如何生成 5!56 的每个可能的唯一组合?

转载 作者:行者123 更新时间:2023-12-04 21:53:41 24 4
gpt4 key购买 nike

我有一个带有一个列“数字”的表格“元素”,类型 SMALLINT 包含数字 1 到 56。如何使用 SQL 语句生成从 1 到 56 的每个可能组合的 5 个数字的唯一集合?

在 APL(编程语言)中,一个简单的二元函数 5!56 可以解决问题!

编辑:在好的 ole MS-DOS QBASIC 中,我是这样完成的:

10  OPEN "C:\5NUMBERS.OUT" FOR OUTPUT ACCESS READ WRITE AS #1
12 LET SER = 0

15 LET E = 56
30 FOR B5 = 5 TO E
40 FOR B4 = 4 TO E
50 FOR B3 = 3 TO E
60 FOR B2 = 2 TO E
70 FOR B1 = 1 TO E
80

88 IF B5 = B1 THEN 190
89 IF B5 = B2 THEN 190
90 IF B5 = B3 THEN 190
91 IF B5 = B4 THEN 190

92 IF B4 = B1 THEN 180
93 IF B4 = B2 THEN 180
94 IF B4 = B3 THEN 180

95 IF B3 = B1 THEN 170
96 IF B3 = B2 THEN 170

97 IF B2 = B1 THEN 160

98 LET SER = SER + 1

100 PRINT #1, SER; "|";
130 PRINT #1, B1; "|";
131 PRINT #1, B2; "|";
132 PRINT #1, B3; "|";
133 PRINT #1, B4; "|";
134 PRINT #1, B5; "|";
140 PRINT #1, B1 + B2 + B3 + B4 + B5; "|"

150 NEXT B1
160 NEXT B2
170 NEXT B3
180 NEXT B4
190 NEXT B5
205 CLOSE
210 END
220 SYSTEM

顺便说一下,这将我的加载文件创建到 INFORMIX-SQL 表中
TABLE combos
(
seq_id SERIAL,
ball_1 SMALLINT,
ball_2 SMALLINT,
ball_3 SMALLINT,
ball_4 SMALLINT,
ball_5 SMALLINT,
sum SMALLINT
);

我使用 combos.sum 生成钟形曲线图,显示每个元素总和相同的组合计数。

最佳答案

如果“唯一集”是指我认为你所做的(对不起,我不知道 APL!),你可以写:

SELECT e1.number,   e2.number,   e3.number,   e4.number,   e.number
FROM elements e1, elements e2, elements e3, elements e4, elements e5
WHERE e1.number < e2.number
AND e2.number < e3.number
AND e3.number < e4.number
AND e4.number < e5.number
;

"could this be accomplished without actually having to store the elements in a table?.. i.e. let the server do it without resorting to table I/O? "



是的,有一个 Oracle 技巧可以使用分层查询和 CTE 语法动态生成数据:
WITH elements AS
( select rownum as number
from dual
connect by level <= 56 )
SELECT e1.number, e2.number, e3.number, e4.number, e.number
FROM elements e1, elements e2, elements e3, elements e4, elements e5
WHERE e1.number < e2.number
AND e2.number < e3.number
AND e3.number < e4.number
AND e4.number < e5.number
;

关于sql - 在 SQL 中,如何生成 5!56 的每个可能的唯一组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9935974/

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