我正在做一个公式来在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。我希望结果在一个表中,但我不知道如何将所有这些长查询概括为一个......
答案 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以包含此内容。感谢您提供一个!)。
然而,你的整体设计对我来说有点怀疑;你究竟想要完成什么?