STDEV () является функцией агрегирования.Он принимает значения из множества строк и дает один результат.
SELECT
name,
STDEV(t1) standard_deviation_of_t1,
STDEV(t2) standard_deviation_of_t2,
STDEV(t3) standard_deviation_of_t3
FROM
yourTable
GROUP BY
name
-- This will give meaningful results if there are several records for the
-- same name.
К сожалению, он не принимает значения из нескольких полей.Всего несколько строк, для этого вам нужно заново обработать данные, чтобы все значения были в одном столбце ...
SELECT
name,
STDEV(t) standard_deviation_of_all_t_values,
FROM
(
SELECT name, t1 AS t FROM yourTable
UNION ALL
SELECT name, t2 AS t FROM yourTable
UNION ALL
SELECT name, t3 as t FROM yourTable
)
AS data
GROUP BY
name
РЕДАКТИРОВАТЬ
Другойвариант, вместо UNION ALL
может быть ...
SELECT
name,
STDEV(CASE map.field_id WHEN 1 THEN t1 WHEN 2 THEN t2 ELSE t3 END)
FROM
your_table
CROSS JOIN
(SELECT 1 as field_id UNION ALL SELECT 2 UNION ALL SELECT 3) AS map
GROUP BY
name