add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE MyTable (
var CHAR(1) CHECK (var IN ('A', 'B', 'C')),
var2 CHAR(2) CHECK (var2 IN ('AA', 'BB', 'CC')),
val1 INT CHECK (val1 IN (1, 2, 3, 4, 5)),
val2 INT CHECK (val2 IN (1, 2, 3, 4, 5))
);


INSERT INTO MyTable (var,var2, val1, val2) VALUES
('A','AA', 1, 2),
('B','BB', 3, 4),
('A','BB', 1, 2),
('B','BB', 3, 4),
('A','BB', 1, 2),
('B','CC', 3, 4),
('A','CC', 1, 2),
('B','BB', 3, 4),
('C','CC', 5, 1);

select
var ,
var2,
val1,
val2 ,
(val1+val2)/2 as var3
from Mytable
var var2 val1 val2 var3
A AA 1 2 1
B BB 3 4 3
A BB 1 2 1
B BB 3 4 3
A BB 1 2 1
B CC 3 4 3
A CC 1 2 1
B BB 3 4 3
C CC 5 1 3
SELECT m.*, r.calc_average
FROM MyTable AS m
CROSS APPLY (SELECT AVG(s.v)
FROM (VALUES (m.val1),(m.val2)) AS s(v)
) AS r(calc_average);
var var2 val1 val2 calc_average
A AA 1 2 1
B BB 3 4 3
A BB 1 2 1
B BB 3 4 3
A BB 1 2 1
B CC 3 4 3
A CC 1 2 1
B BB 3 4 3
C CC 5 1 3