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

2024-01-29

我有一个表“元素”,其中有一列“数字”,类型为 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
;

“这是否可以在不需要实际存储的情况下完成? 表中的元素?...即让服务器执行此操作而不求助于 表 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
;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 SQL 中,如何生成 5!56 的每种可能的唯一组合? 的相关文章

  • 使用两个日期之间的随机日期时间更新每一行

    我有一个专栏叫date created我希望每一行保存一个随机日期 日期距当前时间为 2 天 我正在运行以下查询 但它会更新具有相同随机日期的所有行 我希望每一行都是随机的并且不相同 update table set date create
  • 将 UUID 存储为 base64 字符串

    我一直在尝试使用 UUID 作为数据库键 我希望占用尽可能少的字节数 同时仍然保持 UUID 表示形式的可读性 我认为我已经使用 base64 将其减少到 22 个字节 并删除了一些尾随的 这些 对于我的目的来说似乎没有必要存储 这种方法有
  • 如何在 Visual Studio 中更改 Azure 数据库表的列顺序

    我整个下午都在寻找在 MS Visual Studio 2022 中重新排序 Azure 数据库表列的方法 没有运气 在其他应用程序中 可以通过拖动或剪切和粘贴轻松重新排列列 这里无能为力 此时 我什至不确定可以在 VS 中移动列 我只对
  • 分层查询

    我希望我能够解释困扰我的问题 我有以下分层数据集 这只是 34K 记录的子集 PARENT ID CHILD ID EXAM TUDA12802 TUDA12982 N TUDA12982 TUDA12984 J TUDA12984 TUD
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • 如何在 PostgreSQL 中使用具有多个值的 SQL LIKE 条件?

    有没有更短的方法来查找多个匹配项 SELECT from table WHERE column LIKE AAA OR column LIKE BBB OR column LIKE CCC 这个问题适用于 PostgreSQL 9 1 但如
  • 如何从 PostgreSQL 中的时间戳列值提取一天中的时间(或小时)?

    我正在尝试从 PostgreSQL 中的 时间戳 列中提取一天中的时间 这是我的做法 但是 太糟糕了 知道如何做得更好吗 SELECT date part hour date demande text hours date part min
  • 跨多个表进行搜索,并在结果行中显示表名称

    如何构建 SQL 语句以跨多个平面不相关的表运行 并使用选择结果和结果来自的表的名称显示结果 这种情况是这样的 我有几个表 每个表都有相同的列名 这是我从外部各方收到的数据 并将其存储在不同的表中 相同的表看起来像 Table 1 pid
  • 使用加法求阶乘

    我正在尝试创建一个 C 代码来查找整数的阶乘 以便我可以将代码转换为汇编语言 我的代码似乎将第二个整数 乘 两次 即 5 4 4 3 我似乎无法找出原因 请帮助 define N 5 int main int j 0 int i 0 int
  • 单独的逗号分隔值并存储在sql server的表中

    我有一个存储过程 它将逗号分隔的值作为输入 我需要将其分开并需要将其作为单独的行存储在表中 令 SP 的输入为 Rule ID ListType ID Values 1 2 319 400 521 8465 2013 我需要将它存储在一个名
  • MySQL 查询到 CSV [重复]

    这个问题在这里已经有答案了 有没有一种简单的方法来运行MySQL查询来自linux命令行并以csv格式输出结果 这就是我现在正在做的事情 mysql u uid ppwd D dbname lt lt EOQ sed e s g tee l
  • 为表中的每个组选择前 N 行

    我面临一个非常常见的问题 即 为表中的每个组选择前 N 行 考虑一个表id name hair colour score列 我想要一个结果集 对于每种头发颜色 都能得到前 3 名得分手的名字 为了解决这个问题 我得到了我所需要的Rick O
  • 月份增量查询

    我想通过添加 1 个月来更新数据库中的月份 但我不知道如何在以下存储过程查询中添加月份 我不擅长 sql 请检查它 ALTER PROCEDURE dbo ChangePassword password varchar 20 epasswo
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • XML 解析:格式良好的检查:未声明的实体

    我正在使用 SSMS 2008 但收到以下错误 你知道这意味着什么吗 Msg 9448 Level 16 State 1 Line 4 XML parsing line 1 character 89 well formed check un
  • LiveSQL 不断向我显示:ORA-00933:SQL 命令未正确结束[重复]

    这个问题在这里已经有答案了 INSERT INTO Countries Country Capital Cities VALUES Philippines Manila 122 USA Washington 19495 Brazil Bra
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • 在 postgres 查询中使用列表

    我有一个动态列表 list a b c d 所以长度可能会改变 我想在查询中比较这些列表值 select from student where name in all the list values 我想将列表值传递到此查询中 我怎样才能做
  • 如何在NiFi中映射流文件中的列数据?

    我有 csv 文件 其结构如下 Alfreds Centro Ernst Island Bacchus Germany Mexico Austria UK Canada 01 02 03 04 05 现在我必须将这些数据移入数据库 如下所示
  • Delphi 5 中的 Oracle 数据库连接

    我正在使用 Delphi 5 版本 我想连接到 Oracle 数据库 我有 TDatabase 组件 我不知道如何通过 Delphi 连接到数据库 请提供连接数据库的步骤 谢谢 The TDatabase http docwiki emba

随机推荐

  • 根据两个数据框的最小值创建一个数据框 pandas python

    我有两个不同大小的数据框 仅当第二个数据帧的值小于第一个数据帧的值时 我才想用第二个数据帧的值替换第一个数据帧的值 换句话说 我想找到每个位置的两个数据帧的最小值 以匹配两个数据帧的索引 df1 A B C 0 0 12 7 1 15 20
  • 在我自己的 vba 函数中获得没有 gosub 的返回

    我已经与 vba 斗争了一段时间 令人惊讶的是它并没有变得更好 我编写了以下代码 以便我可以为对象使用特殊的比较运算符 Public Function myEquals v As CCtypestore As Boolean If v Is
  • CSS 垂直对齐:中间在 IE7 中不起作用

    我这里有这段代码 div class pics2 div style display block width 225px height 200px this div is generated via jQuery Plugin div st
  • 从 .json URL 获取数据并使用 Javascript/JQuery 将其显示在 HTML 中

    我正在尝试从以下位置获取 json 数据 http api dailymile com entries json http api dailymile com entries json然后我希望在表格中显示这些数据 当 json 链接指向我
  • 使用 PHP 检查值是否存在于逗号分隔的字符串中[重复]

    这个问题在这里已经有答案了 我需要检查我的 id 是否存在于逗号分隔的字符串中 我的字符串保存为 1 2 3 4 10 在数据库中 我努力了 HiddenProducts array sqlvalue if in array 2 Hidde
  • 在 Fancybox 内输入

    我在使用 Fancybox 时遇到了一个非常奇怪的问题 我似乎无法获取 Fancybox 中显示的输入的 val 它们的值为 然而 Fancybox 外部的输入是有效的 My code
  • 在Python数据类中创建唯一的ID

    我的 python 数据类需要一个唯一的 无符号整数 id 这是非常相似 to 这个帖子 https stackoverflow com questions 58101476 how to create a unique and incre
  • 如何在运行时从下载的 jar 文件加载未知类?

    我正在构建一个客户端服务器应用程序 在运行时 客户端应用程序从服务器应用程序加载 jar 文件并存储它 我将客户端和服务器应用程序都作为 jar 文件运行 我现在想要加载这个下载的 jar 文件中包含的类 例如 我有一个接口 A 和一个实现
  • 如何在python 2.7.6中导入_ssl?

    我的http服务器基于带有Python 2 7 6的BaseHTTPServer 现在我希望它支持ssl传输 即所谓的https 我已经安装了 pyOpenSSL 并重新编译了带有 ssl 支持的 python 源代码 当我尝试时它确实有效
  • 在 DynamoDB 中,如何使用 Java 将元素附加到列表字段

    我在 DynamoDB 中有一条记录 其中包含一个名为 imageData 的字段 该字段是一个项目列表 每个项目都是一个字典 包含键值对的映射 如何将新项目追加到以下记录中的列表中 ssid abcd imageData I tried
  • 结构体数组成员的默认值[重复]

    这个问题在这里已经有答案了 可能的重复 在 C 类中初始化数组和可修改左值问题 https stackoverflow com questions 6647038 intitialzing an array in a c class and
  • 如何合并来自不同输入值的数组?

    有许多具有相同名称和相同类别但具有不同值的文本字段 每个输入都有 1 个按钮 我通过单击每个特定按钮来获取每个字段的值 与 JavaScript 一起使用 我可以将该值放入数组中 但数组不会合并 如果我单击第一个按钮 特定输入字段值将放入数
  • 在 SQL 事件探查器中显示行计数

    是否可以在 SQL Server Profiler 中显示 行计数 列 例如 有 CPU 和 Duration 列 但它可以显示查询返回多少行吗 使用 RowCounts 列怎么样
  • Python 相当于 ruby​​ 的 StringScanner?

    是否有与 ruby 等效的 python 类StringScanner 类 http ruby doc org core classes StringScanner html 我可以将一些东西组合在一起 但如果这已经存在 我不想重新发明轮子
  • Iron 路由器身份验证控制器

    我想知道是否有人可以演示如何在路由器控制器类上使用全局 之前 操作来处理用户身份验证并根据结果显示适当的路由 模板 我的用例是让 AppController 充当身份验证防火墙 并在用户注销时阻止任何子控制器操作 例如 Create a p
  • PIG 中的 GROUP 和 COGROUP 有什么区别?

    我知道 Group 不能处理多个元组 因此我们在 PIG 中有 COGROUP 然而 今天检查时 GROUP 命令对我有用 我正在使用 PIG 0 12 0 我的命令和输出如下 grunt gt grpvar GROUP C by 2 B
  • 找不到有角度的日期管道

    我想在 HTML 中使用 DatePipe timeslot date 但我得到了错误 error NG8004 No pipe found with name date 我的 app module ts 导入公共模块 import Com
  • 无法添加配置转换

    I have 创建了构建配置 http www tomot de en us article 5 asp net how to use web config transforms to replace appsettings and con
  • Scala 中更好的字符串格式

    由于有太多的争论 String format很容易变得太混乱 有没有更强大的方法来格式化字符串 就像这样 This is number string format number gt 1 或者由于类型问题这是不可能的 format我认为需要
  • 在 SQL 中,如何生成 5!56 的每种可能的唯一组合?

    我有一个表 元素 其中有一列 数字 类型为 SMALLINT 其中包含数字 1 到 56 如何使用 SQL 语句生成从 1 到 56 的每种可能组合的 5 个数字的唯一集合 在 APL 编程语言 中 一个简单的二元函数 5 56 就可以解决