假设我有一堆字母组合在一起,我想知道哪一对与另一对最合适,作为一个例子,我有
a b d b
b c e a
它应该返回ab或ba,因为a-b在这里发生的最多。
到目前为止,我已经提出了一个查询,它只是将两个字母拉在一起,但是当我运行查询时,我得到类似于上面示例的内容,但所有这些都在单独的元组中,就像这样
a
b
b
c
d
e
b
a
我需要比较所有PAIRS的出现,到目前为止我的逻辑是我可以使用nvl()来连接它们(但是ab和ba的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)
基本上,如果两个字母最后出现在同一个句子中,则它们是一对(债券)。