我有一个包含不同包(package_id)的服务( service_id )的表
我试图找到具有完全相同服务的包并只保留其中的一个包
dummy_id package_id service_id
4 4 3
5 4 4
6 4 5
7 5 3
8 5 4
9 5 5
10 6 3
12 6 5
13 7 3
14 7 4
15 7 5
16 8 3
17 8 4
18 8 5
19 9 3
20 9 4
21 9 5
22 9 6
23 9 7
24 9 8
25 10 3
26 10 4
27 10 5
我有一个 SQL Fiddle 示例:http ://sqlfiddle.com/#!18/a07d1/3/23
在示例中,PackageIDs 6 和 9没有相同的服务。其他包具有相同的服务,因此保留一个 ( PackageID 4 )
dummy_id package_id service_id
4 4 3
5 4 4
6 4 5
10 6 3
12 6 5
19 9 3
20 9 4
21 9 5
22 9 6
23 9 7
24 9 8
谢谢
可以在这个工作小提琴中找到以下所有步骤
首先,我们通过以下查询找到具有相同值的 package_id,
然后我们找到重复次数最多的相同值的最小 package_id 和剩余的 package_id(在您的情况下具有不同的值),
最后,我们将上面的查询用作主表的子查询,并将获得所需的结果:
也许不是最好的解决方案,但我想会给出预期的结果。