2014-09-17 3 views
1

Я бы хотел рассчитать дисперсию столбца таблицы. . формула для вычисления дисперсии содержит агрегированные и скалярные функции и является:Вычислить дисперсию в sqlite

(SUM((var-AVG(var))*(var-AVG(var))))/(COUNT(var)-1) 

, где переменным является переменным-столбец для вычисления дисперсии.

Что такое лучший способ использовать эту функцию в Sqlite, как:

SELECT (SUM((var-AVG(var))*(var-AVG(var))))/(COUNT(var)-1) AS Variance FROM 
TableX 
+0

Для обработки агрегации необходимы подзапросы. Ознакомьтесь с примером на http://support.microsoft.com/kb/175955 – Smandoli

ответ

3

Значение AVG(var) будет использоваться в каждом выражении должны быть подведены, поэтому вы должны вычислить его отдельно с подзапроса :

SELECT SUM((var-(SELECT AVG(var) FROM TableX))* 
      (var-(SELECT AVG(var) FROM TableX)))/(COUNT(var)-1) AS Variance 
FROM TableX 
Смежные вопросы