与第二个字段相关时在一个字段中查找完全匹配

吉姆

我很高兴能为您提供一些问题,希望对以下两张表进行合理总结:

在此处输入图片说明

表1包含主要原始数据,其中FieldA与FieldB中的特定项目有关系。

相对于FieldA中的每个唯一项目,FieldB中的项目都是唯一的-也就是说,猫,狗,兔子,鸡只在FieldA中的“ a”组下只能出现一次(它们可以出现在该字段的其他位置)。同样,对于FieldA中的b,c和d项(所有FieldB项仅针对每个项出现一次)。

表2列出了表1,字段B中每个唯一项的总数,并由以下查询生成:

qryCount:

select FieldB, count(FieldB) AS FCount 
from Table1
GROUP BY FieldB;

我的问题:用户在表1的FieldA中输入唯一值,然后查询应在FieldB(表1)中返回所有唯一值,相对于表2中的相应FCount总数,该值完全匹配。

例如

  • 如果用户输入“ a,b,d”,则查询将输出“猫,狗,兔子,雪貂”,因为满足了cat(3),dog(2),rabbit(1)和雪貂(1)的总数。
  • 如果用户输入“ a,c”,由于满足了chicken(2)和rabbit(1)的总数,查询将输出“ chicken,rabbit”。
  • 如果用户输入“ b”,则查询不会返回任何内容,因为相应的FieldB项也位于其他位置。

我确实在Excel中使用VBA解决了这个问题(建立了一个命中表,并查看是否满足了用户输入的值的总计数),但是尽管我确实有使用Access SQL(2007)的经验,但我仍在努力从VBA转换这个想法。谢谢您的帮助。

缺口

此查询应为您提供所需的结果。它使用子查询生成的有效副本,Table2但仅用于的所需值FieldA然后将其连接到Table2,仅给出FCountmatch值的行

SELECT t1.FieldB
FROM (SELECT FieldB, COUNT(FieldB) AS FCount
      FROM Table1
      WHERE FieldA IN ('a', 'b', 'd')
      GROUP BY FieldB) t1
INNER JOIN Table2 t2 ON t2.FieldB = t1.FieldB AND t2.FCount = t1.FCount

输出:

FieldB
cat
dog
ferret
rabbit

dbfiddle上的演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

mysql按第一个字段排序,之后按第二个字段排序

使用awk打印第二个字段

根据来自另一个RDD的第一个字段的值检索现有RDD的第二个字段的值

为什么在引用第二个字段时,该值取自第一个字段?

使用一个字段降序然后升至第二个字段对数据进行排序?

如果文件之间的第一个字段匹配,则用其他文件的第二个字段替换下一行

MongoDB对两个集合进行查询,以在第一个集合中添加/减去一个字段,并与第二个集合中的匹配字段相加

在两个csv文件中匹配一个字符串,但是第二个文件太大,无法读入列表

我需要创建一个字段,该字段是maxdate的第二个日期

如何在Java中获取第二个单词的第一个字符

Salesforce规则:如果填充了一个字段,则防止填充第二个字段

尝试对两个字段进行排序,然后是第二个,然后是第一个

找到第二个字段的差异,使用第一个字段报告(awk)

awk查找两个文件中第二个字段之间的差异

在第一个字段中查找重复项,然后合并重复行第二个字段中的文本

使用jQuery根据第一个选择列表选项显示第二个字段

Lucene-按另一个字段排序的搜索,回退到第二个字段

当日期显示在一个字段中时,请使其同时显示在第二个字段中

C#正则表达式第二个字符到最后一个字符模式匹配

2个表在联接时具有相同的字段名称,返回第二个字段,而第一个忽略

删除与Shell脚本中第二个文件中的前2个字段匹配的文件中的行

在mysql查询中将第二个字段与第一个字段连接

将第二行的第二个字段附加到文件中的第一行

从字符串中捕获第二个字段和最后一个字段

不在查询中,然后从第二个集合中选择一个字段

如果第二个字段匹配,请perl一个衬里将列添加到文件

MySQL 触发器适用于同一个表中的一个字段,而不适用于第二个字段

Solr查询多个字段,一个字段不需要完全匹配

MongoDb - 使用 deleteOne 时是否需要第二个字段的索引