场景:匹配算法已识别ID1,ID2已匹配。我需要对匹配做进一步的分析。为此,我需要减少输出中的行数并正确排序。
这个输入只是样本和子集。拥有数千条实际记录使这项任务变得困难。
输入:
预期产出:
我需要确保输出应该有ID,应该有ID1和ID2组合的不同记录,这仍然很好,因为我可以进行distinct和union。
棘手的部分是确保输出中的数据排序。我需要将相似的行按顺序排列。
示例:
111,222,333,444,555,021,023在ID1和ID2中有相似的匹配ID,并且必须一起排序。在这个群体中,排序顺序并不重要,只是他们需要在一起。同样,可能有许多这样的团体。
其余的只要有1对,只需将它们排序在一起,如013014和010011等
有人能帮我解决这个问题吗?
对于事先知道模式的情况,union
按情况排序,此时
将转到以下位置:
select * from (
select ID1, NAME1 from tab1 union
select ID2, NAME2 from tab1 ) a
order by case when NAME1 like '%S' then '' else NAME1 end;
SQL在这里篡改您的数据
仅基于ID1进行分组
select * from (
select concat(least(ID1, ID2), greatest(ID1,ID2)) sorter, ID1, NAME1 from tab1 union
select concat(least(ID1, ID2), greatest(ID1,ID2)) sorter, ID2, NAME2 from tab1 ) a
group by ID1
order by sorter
或在SQL Server上使用的情况下:
select min(sorter) sorter, ID1, NAME1 from (
select concat(case when ID1<ID2 then ID1 else ID2 end, case when ID1>ID2 then ID1 else ID2 end) sorter, ID1, NAME1 from tab1 union
select concat(case when ID1<ID2 then ID1 else ID2 end, case when ID1>ID2 then ID1 else ID2 end) sorter, ID2, NAME2 from tab1 ) a
group by ID1, Name1
order by min(sorter)
问题内容: 我有这个查询: 是否可以根据首先匹配的条件对从该查询返回的记录进行排序。我想先获取所有匹配的记录,然后再获取其他匹配的记录。 例如,如果我有以下记录: 我希望对它们进行如下排序: 有可能吗? 问题答案:
问题内容: 我在用SQL开发匹配算法时遇到了麻烦。我有一张桌子。这些中的每一个都需要与表中的相同行数匹配(出于这个问题的原因,我们需要为每个主题选择两行或控件)。所选控件的位置必须完全匹配,并且所选控件的值应尽可能接近主题。 以下是一些示例数据: 表主题: 表控件: 这是来自样本数据的最佳结果: 这很棘手,因为例如控件11与主体1最接近。但是,在最佳解中,控件11与主体3匹配。 我相信匈牙利算法已
问题内容: 我对使用ngram的单词有部分匹配。如何修改映射以始终偏爱精确匹配而不是ngram令牌?我不想修改查询。一个搜索框将搜索多种类型,每种类型都有各自的字段。 例如,假设我正在搜索职位,一个人的标题为“现场工程师”,另一个人的标题为“引擎技术员”。如果用户搜索“引擎”,我希望ES将后者返回为更相关。 我几乎逐字使用此映射:例外:我使用的ngram的最小值为3,最大值为11,而不是边缘ngr
我刚开始在Golang编程,想对一系列地图进行排序。我有一系列地图。让我们称之为示例_数组。 ] 现在我想使用key的值对这个数组进行排序,所以example_array应该修改为- 如果我使用键的值对原始数组进行排序,原始数组应该修改为- 如何在Golang对这些地图阵列进行排序。请帮忙!
这将是我发布的第一个问题! 我正在尝试使用Intel的SSE4优化立体视觉应用程序的“块匹配”实现。2和/或AVX内部函数。我用“绝对差之和”来寻找最佳匹配块。在我的情况下,blockSize将是一个奇数,例如3或5。这是我的C代码片段: 我知道,数据流单指令多数据扩展指令集包含许多指令,以便于使用SAD进行块匹配,例如mm\u mpsadbw\u epu8和mm\u SAD\u epu8,但它们
TL;dr:我如何用pcregrep来拆分每一个多行匹配? 长版本:我有一些文件,有些行以(小写)字符开头,有些以数字或特殊字符开头。如果我至少有两行彼此相邻,以小写字母开头,我希望在我的输出中这样做。但是,我希望每个发现都被分隔/拆分,而不是相互附加。这是正则表达式: 所以,如果我提供这样的文件: 给出的结果是 然而,我想要的是这个: 这可能吗和/或我必须开始使用Python(或类似)?即使建议