1

我正在做一个公式来在 SQL 中进行一些统计,但我不知道如何改进我正在处理的查询......

我做了一个sqlfiddle,所以你可以更好地理解我

所以我有3个表,我需要解决一个改变索引的公式,i,j ...

i j
---
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3

然后做一些 sqrt 和 pow。我想要一个表中的结果,但我不知道如何将所有这些长查询概括为一个......

4

1 回答 1

2

这似乎只需要几个CROSS JOINs:

SELECT  ((N.n*M1.m)-(S1.s*S2.s)) / 
               (SQRT((N.n*M2.m)-(pow(S1.s,2))) * SQRT((N.n*M3.m)-(pow(S2.s,2))))
FROM N
CROSS JOIN sums as S1
CROSS JOIN sums as S2
JOIN mults as M1
     ON M1.i = S1.i
     AND M1.j = S2.i
JOIN mults as M2
     ON M2.i = S1.i
     AND M2.j = S1.i
JOIN mults as M3
     ON M3.i = S2.i
     AND M3.j = S2.i;

(我已经修改了Fiddle以包含这个。感谢您提供一个!)。

但是,您的整体设计对我来说有点可疑;你到底想完成什么?

于 2012-11-16T16:46:21.803 回答