有一个元素相等的表,计算“唯一”元素的数量

2skhul33  于 2021-06-15  发布在  Mysql
关注(0)|答案(0)|浏览(277)

我有两个表:产品ID表:
表p\U测试:

id:

1

2

3

4

以及一个表,其中列出了一个产品的所有可能组合,并与其他所有产品进行了相等性测试(假设我测试了它们的图片,如果图片相等-我假设它们是同一个产品):表p\u match\u test:

p_id_1, p_id_2, is_same

1       2       0

1       3       0

1       4       1

2       3       1

2       4       0

3       4       0

如您在本例中所见,共有4种产品。对产品1和产品4进行了相等性测试,结果发现它们“相同”,产品2和产品3的情况相同。这意味着只有两种“独特的”产品(4种产品有2张独特的图片)。
我想要实现的是在任何一组产品中都有一些独特的图片,因此结果将是:

products_count unique_products_count
4              2

我尝试了以下查询:

select count(p.id)                                                                                                            as products_count,
       sum(if(not exists(select * from p_match_test t where (p.id = t.p_id_1 or p.id = t.p_id_2) and t.is_same = 1), 1, 0)) as unique_products_count
from p_test p

但它只计算没有重复的产品,而不计算“独特”的图像。我如何实现我的目标?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题