Postgresql SQL-为“生成计数”;“不匹配”;记录

Postgresql SQL-为“生成计数”;“不匹配”;记录,postgresql,apache-spark-sql,metabase,Postgresql,Apache Spark Sql,Metabase,我现在尝试使用Metabase v0.29来开发一个问题。假设我有三个表,并希望生成如下所示的输出表 表1-工作/学生ID(工作/学生ID) 表2-作业项目(作业项目) 表3-学生项目(学生项目) 输出表-项目匹配 Job ID Student ID J101 S101 J101 S102 J102 S101 Job ID Job Item J101 Apple J101 Orange J102 Apple J102 Banana

我现在尝试使用Metabase v0.29来开发一个问题。假设我有三个表,并希望生成如下所示的输出表

表1-工作/学生ID(工作/学生ID)

表2-作业项目(作业项目)

表3-学生项目(学生项目)

输出表-项目匹配

Job ID   Student ID
J101     S101
J101     S102
J102     S101
Job ID   Job Item
J101     Apple
J101     Orange
J102     Apple
J102     Banana
Student ID   Student Item
S101         Apple
S101         Orange
S102         Pear
S102         Orange
S103         Apple
S103         Orange
Job Item   Student Item Match
Apple      3
Orange     2
Banana     1
示例说明-如何计算苹果?

请注意,J101和J102都请求Apple(如表2所示),J101有申请人S101和S102(如表1所示),而J102只有申请人S101

J101:一个匹配来自申请人S101,他有一个苹果,另一个匹配来自申请人S102,他也有一个苹果(如表3所示)。因此2个苹果相配

J102:申请人S101的一个匹配项,他有一个苹果

因此,苹果总共有3场比赛

请注意:由于我们数据库中表1-3的实际大小,不可能将所有表追加/合并在一起以计算该值


有没有有效的方法来实现这一目标?提前感谢-这是我第一次在这里发布问题,所以如果您需要任何澄清,请让我知道。

J101引用工作项apple和orange,就像j102引用apple和banana一样。这是正确的吗?这些数据是这样的吗?@Gaj是的-没错:)你没有试图解决这个问题。