我正在尝试生成一个查询,其中查询一组实体,对于相同的实体实体关系,它查询3天滚动回溯。如果在前3天中,同一实体实体关系中至少有2次发生了水果交换次数存在且不为0的相同实体关系,则将其报告为发生。我想填充一个表,可以说每个月生成一次,该表用于每个合格实体-实体对的出现次数。
让我们在这里查看表格。
Unique_Id Entity_1 Entity_2 Day Month No Of Fruits
1001 John Sam 1 A 98
1002 John Sam 2 A 97
1003 John Sam 3 A 67
1004 Beth Sam 4 A 93
1005 John Sam 5 A 89
1006 Beth Sam 6 A 61
1007 Beth Sam 7 A 90
1008 John Sam 8 A 78
1009 Beth Sam 9 A 90
1010 John Sam 10 A 73
1011 Beth Sam 11 B 85
1012 John Sam 12 B 80
1013 Beth Sam 13 B 64
1014 Beth George 14 B 64
1015 John Sam 15 B 98
1016 Beth Sam 16 B 98
1017 Beth Sam 17 B 81
1018 John Sam 18 B 84
1019 Beth Sam 19 B 74
有3种可能的实体实体关系。 约翰·山姆 贝丝·萨姆 贝丝·乔治。
对于A月份: 在第1天和第2天,由于没有数据,我们将忽略它。 对于第3天,John Sam进行了一次交易,如果我们看到前两天的交易,则至少还有一笔交易。这成为一种情况。 在第5天,考虑到第3天到第5天,John-Sam进行了一次交流,这满足了我的条件。这是另一种情况。 对于第8天,John Sam实体在第7天或第6天没有交易。因此,当天不会发生任何事情,因此也不算一次。
这是最棘手的部分。 在第11天的B个月,Beth和Sam又发生了一次,因为在第9天发生了一次交换。但这将在B个月进行报告。
下面是我的代码,但这不是我希望生成的代码:
select
entity1, entity2, month, day, count (*)
from table1
where day between day-2 and day --day is a number, not a date, so is month
group by entity1, entity2, day, month
having count(*) >= 2
我的最终表应类似于下表的前3列:
Month Entity Count Days
A John 3 3,5,10
A Beth 3 6,7,9
B John 1 12
B Beth 4 11,13,17,20
预先感谢