按照it's quite OK now之前的问题,我想在结果表中添加一个额外的列。
此列将保留ID
的出现频率。
结果将是这样的:
ID Company status Freq
---------------------------------------
A10 company10 FOUND 1
A3 company3 FOUND 2
A5 company5 FOUND 3
A7 company7 FOUND 2
A8 company8 FOUND 3
B100 B100 NOT FOUND 1
B200 B200 NOT FOUND 1
B400 B400 NOT FOUND 1
关于如何获得频率计数的一些解释:
计数是表1中{1}}列中ID出现次数的总和加上id
列中相同name
的相应id
出现的次数table1。
或者在另一种情况下,name
在table2中有一个对应的name
,然后如果该id在table1中可用,那么我们将添加到该现有id的计数,如果没有,我们包含该id并计算table1中相应名称的出现次数。
和另一种情况,如果找不到该名称的相应ID,则计算表1中该特定名称的出现次数。
例如,A3在table1中出现两次,而table1的column2中的所有名称都没有相应的ID为A3,因此A3的计数为2。
另一个例子:A5在table1的column1中出现一次,但是在table2中它的对应名称是B2,它在table1的第二列中出现两次,所以我们添加这两个计数,并且A5得到3.
另一个例子,我们在table1中没有A10,但它出现在结果中,因为column2-table1中的一个名称是B6,其对应的ID为A10,所以相反为B6创建一个条目并添加其计数,我们从table2获取id并添加到其计数中
另一个例子,如果名称在table2中没有相应的id,比如B400,那么我们将它作为条目放在结果表中并计算它在table1中出现的次数,并在这个例子,它发生过一次。
这里是Giorgos's answer,但没有计数。
以及关于如何构建当前结果表的更多解释:
我们从table2获取了table1中唯一ID的列表以及它们对应的table2。我们对table1的第二列进行类似的查询:我们在table2的第二列中查找table1中第二列的值,即name,如果我们找到它,那么我们从table2获得相应的id和company,但如果该ID已经存在于我们之前的查询中,那么我们就删除它,不需要重复它。第三,如果我们在table2的名称中找不到table1中name的值,那么我们就没有任何相应的id或公司,所以我们将该名称值都归为id和company。一般来说,如果我们从table2中找到table1中的id和名称,那么我们给它们的状态为FOUND,如果没有,则找不到。
和sql查询用于获取当前结果表:
id