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
+1 MySQL에서 작동하지 않을 수 있습니다. 내가 볼 수있는 한 파생 테이블의 외부 열에 대한 참조를 허용하지 않는 것 같습니다. –
@ dem 당신은 그것을 간단하게 할 수 있습니까? 조금도? 작동하지만 편집을 위해 – Merlin
@Merlin - 대안을 게시했습니다. 그러나 '편집하지만 효과가 있습니까?'라는 것은 무엇을 의미합니까? – MatBailie