DECLARE @T TABLE(
id INT PRIMARY KEY,
a FLOAT,
b FLOAT,
c FLOAT,
d FLOAT,
e FLOAT,
f FLOAT
)
INSERT INTO @T
SELECT * FROM (VALUES
(1, 1.2,2.3,4.4,5.1,6.7,11.9),
(2, 7.2,2.3,4.3,5.1,4.7,3.9),
(3, 1.9,5.3,3.3,5.1,3.7,8.9),
(4, 5.2,2.7,7.4,9.1,1.7,2.9) ) T(id,a,b,c,d,e, f)
;WITH U AS
(
SELECT *
FROM @T
UNPIVOT (o FOR col IN (a,b,c,d,e, f)) unpvt
)
SELECT u1.col + '*' + u2.col as operation, SQRT(sum(u1.o*u2.o)) AS result
FROM U u1 JOIN U u2 ON u1.id=u2.id AND u1.col <= u2.col
GROUP BY u2.col, u1.col
ORDER BY u2.col, u1.col