【发布时间】:2012-07-14 09:49:59
【问题描述】:
我正在寻找一种方法来匹配更大的其他结果列表中的一组结果,并计算匹配的数量。例如:
我有一组结果
Result 1
sub1
sub2
sub3
Result 2
sub1
sub2
sub3
我需要找出上述任何一组结果在下面更大的结果数据集中出现了多少次。
Result 1
sub1
sub2
sub3
Result 2
sub1
sub3
sub4
Result 2
sub1
sub2
sub3
Result 2
sub1
sub2
sub3
sub4
在上面的示例中,第一组的结果 1 将匹配第二组中的第一个结果,结果 2 将匹配第二组中的最后 2 个结果,因为它们包含第一组的所有子结果。因此,结果 1 将显示频率计数为 1,而结果 2 将显示频率计数为 2。
我对 SQL 比较陌生,但想找到解决上述问题的方法。
昨天的样本数据:
Group Ad Date
A 1 7/14
A 2 7/14
A 3 7/14
B 1 7/14
B 2 7/14
B 3 7/14
B 4 7/14
C 1 7/14
D 1 7/14
D 3 7/14
D 4 7/14
我需要了解过去一周 A 组广告 1-3 投放了多少次,但假设周一 A 组只投放了广告 1 和 3。我不希望返回此结果。星期二 A 组投放了广告 1、2、3、4。我想知道这个结果,星期三 A 组投放了 1、2、3 广告,我也想知道这个。
Group Ad Date
A 1 7/09
A 3 7/09
A 1 7/10
A 2 7/10
A 3 7/10
A 4 7/10
A 1 7/14
A 2 7/14
A 3 7/14
所以,鉴于这个例子,我希望看到这个:
Group Ad Date
A 1 7/10
A 2 7/10
A 3 7/10
A 1 7/14
A 2 7/14
A 3 7/14
【问题讨论】:
-
什么是“子”?你能发布一些示例数据和可能想要的结果吗?
-
您至少可以发布一个架构供我们使用吗?我们需要知道数据是如何表示的。每个组都有自己唯一的 id 吗?集合是在它们自己的表中还是由 id 表示?
-
@ZaneBien 样本数据是专有的,所以我不能发布它。我们有每天运行的广告集。这些广告在组内运行。示例中的“结果”是组,“子”是组内的广告。并非组内的每个广告都会每天投放。有时广告会添加到组中,有时广告会从组中删除。我需要了解在特定日期范围内,一组给定的广告在特定组中投放了多少次。
-
我们不需要您的实际数据,但我们只需要知道您的表结构是如何布局的,这样我们就可以更好地了解您的情况。简单编造的数据非常好。
-
好的,太好了!我们到了那里......还有一件事:你怎么知道什么时候以及什么广告在什么日期投放?它是存储在另一个表中还是一个表中的所有内容?