概括一个涉及三个表SQL的多个实例的查询

时间:2012-11-16 16:24:01

标签: sql join statistics

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

我做了sqlfiddle so you can understand me better

所以我有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。我希望结果在一个表中,但我不知道如何将所有这些长查询概括为一个......

1 个答案:

答案 0 :(得分:2)

这似乎只需要几个CROSS JOIN s:

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以包含此内容。感谢您提供一个!)。

然而,你的整体设计对我来说有点怀疑;你究竟想要完成什么?