Sql 在oracle数据库中将两个元组合并为一个元组
假设我有一堆字母组合在一起,我想找出哪一对与另一对结合最紧密,我举了一个例子Sql 在oracle数据库中将两个元组合并为一个元组,sql,oracle,Sql,Oracle,假设我有一堆字母组合在一起,我想找出哪一对与另一对结合最紧密,我举了一个例子 a b d b b c e a 它应该返回ab或ba,因为a-b是这里发生最多的 到目前为止,我已经做了一个查询,只需要将每两个字母拉在一起,但是当我运行查询时,我得到了类似于上面示例的内容,但所有内容都在单独的元组中,如下图所示 a b b c d e b a 我需要比较所有对的出现情况,到目前为止,我的逻辑是我可以使用nvl()对它们进行连接(但a-b
a b d b
b c e a
它应该返回ab或ba,因为a-b是这里发生最多的
到目前为止,我已经做了一个查询,只需要将每两个字母拉在一起,但是当我运行查询时,我得到了类似于上面示例的内容,但所有内容都在单独的元组中,如下图所示
a
b
b
c
d
e
b
a
我需要比较所有对的出现情况,到目前为止,我的逻辑是我可以使用nvl()对它们进行连接(但a-b和b-a的nvl()返回两个单独的实例),然后运行计数,但我不确定如何在调用这些字母时对它们进行计数
select a.value, b.value
from Letter a, Letter b, Word aw, Word bw, Sentence senA, sentence senb
where a.id = aw.aid and aw.pid = sena.id and b.id = bw.aid and
bw.pid = senb.id and aw.pid = bw.pid and a.value != b.value
;
TL;DR:我想做一个计数(a.ltr-b.ltr对),但不确定如何编码
谢谢
编辑:表格结构:
letter(id, value)
\
word(aid, pid)
\
sentence(id, name,sid)
基本上,如果两个字母在同一个句子中结束。id,则它们是一对(键)。您可以共享表结构吗?请共享在您显示的第二个代码块中显示成对出现的查询。您可以共享表结构吗请共享查询,该查询将在您显示的第二个代码块中为您提供成对出现。