通过两个不同的变量计算更小的比率

时间:2019-06-14 07:54:37

标签: sql sql-server count compare divide

我在两个不同的数据集中有12个不同的ID值,并且还有起始值和结束值。我要初始化的是将起始值作为循环的开始参数,将结束值作为最后一个参数。搜索与它们对应的值,并找到连续值之间的比率。找到比率后,如果第一个比率小于第二个比率,则计数器递增。

下面我发布了一个示例数据集:

根据数据集,我对算法的期望是:

  • 首先找到两个比率,一个是 PresentationButton( Text("Show Detail View"), destination: DetailView()) ,另一个是Ratio1 = a[i]/b[i+1]
  • 然后如果是Ratio2 = a[i+1]/b[i+2],它将计入该ID
Ratio1 > Ratio2

create table #sample_data1( ID VARCHAR(10), a1 INT, a2 INT, a3 INT, a4 INT, a5 INT, a6 INT, a7 INT, a8 INT, a9 INT, a10 INT, a11 INT, a12 INT, startValue INT, endValue INT ); insert into #sample_data1 values (1001,3,2,1,1,1,1,3,0,0,0,0,0,1,7), (1002,1,2,3,4,0,0,0,1,2,3,0,0,1,12), (1003,0,3,8,1,0,0,0,3,3,0,0,0,1,12), (1004,0,1,2,4,4,0,0,0,0,0,0,0,1,9), (1005,1,2,2,1,0,0,2,2,2,1,0,0,1,8); create table #sample_data2( ID VARCHAR(10), b1 INT, b2 INT, b3 INT, b4 INT, b5 INT, b6 INT, b7 INT, b8 INT, b9 INT, b10 INT, a11 INT, b12 INT, startValue INT, endValue INT ); insert into #sample_data2 values (1001,7,6,4,0,2,2,3,0,9,0,0,0,1,7), (1002,1,2,3,4,0,6,8,1,2,3,0,0,1,12), (1003,4,3,2,1,0,0,0,3,3,0,0,0,1,12), (1004,0,1,2,4,2,0,0,0,0,0,0,0,1,9), (1005,1,2,2,1,0,9,2,2,2,1,0,0,1,8); 对于Expexted result:

步骤1。ID = 1001Ratio1 = a1/b2 =3/6,而0.5Ratio2 = a2/b3 = 2/4。 ratio1不大于ratio2,所以不计入

步骤2。对于下一个0.5Ratio1 = a2/b3 = 2/4 = 0.5,因为它除以0,所以我们将其取为Ratio2 = a3/b4 = 1/0,因此Ratio1不大于Ratio2,因此

第3步。对于下一个1,因为它除以0,我们将其视为Ratio1 = a3/b4 = 1/01然后是Ratio2 = a4/b5 = 1/2 = 0.5,然后将其视为{{1} }

第4步。对于下一个Ratio1 > Ratio21 Ratio1 = a4/b5 = 0.5 不算

步骤5。对于下一个Ratio2 = a5/b6=1/2 = 0.5Ratio1 = Ratio2 Ratio1 = a5/b6 = 0.5,因此计数计数器变为2

步骤6。对于下一个Ratio2 = a6/b7=1/3=0.34Ratio1>Ratio2,我们将其视为Ratio1 = a6/b7 = 0.34 Ratio1不大于Ratio2,因此不计入

>

步骤7。对于下一个Ratio2 = a7/b8 =3/01 Ratio1 = a7/b8=1,然后开始计数,对于'ID = 1001'计数器变为3

由于我们已达到最终值7,因此这将是此ID的最终计数器值。此过程涉及其余的ID。

感谢您的帮助!

0 个答案:

没有答案