L'Écart-type pour SQLite
J'ai cherché sur le SQLite docs et ne pouvait pas trouver quoi que ce soit, mais j'ai aussi cherché sur Google et quelques résultats sont apparus.
Ne SQLite ont intégré l'Écart type de la fonction?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez calculer la variance dans SQL:
Cependant, vous avez encore de calculer la racine carrée d'obtenir l'écart-type.
group by
à l'aide de cette technique...SELECT AVG((t.num - sub.a) * (t.num - sub.a)) as var from t, (SELECT name, AVG(t.num) AS a FROM t group by name) AS sub where t.name = sub.name group by sub.name
Les fonctions d'agrégation pris en charge par SQLite sont ici:
http://www.sqlite.org/lang_aggfunc.html
ECARTYPE n'est pas dans la liste.
Cependant, le module
extension-functions.c
dans cette page contient une fonction ECARTYPE.N'est pas encore intégré dans la fonction ecartype dans sqlite. Toutefois, vous pouvez définir (comme Alix a fait) défini par l'utilisateur, l'agrégateur de fonction. Voici un exemple complet en Python:
Ce sera d'impression:
Comparer avec MySQL: http://sqlfiddle.com/#!2/ad42f3/3/0
J'ai mis en place le Welford de la méthode (le même que
extension des fonctions.c
) comme SQLite UDF:C'est en PHP (
$db
est l'objet PDO), mais il doit être facile à port à l'autre langue.SQLite est soooo cool. <3
($context['k'] - 1)
. Le poste est lié à concernant Welford, la méthode a été mise à jour afin de refléter cette correction.Non, j'ai cherché sur cette même question, et fini par avoir à faire les calculs avec mon application (PHP)
un petit truc
alors la seule chose à faire est de calculer la racine carrée à l'extérieur.
SELECT (SUM(value*value) - SUM(value)*SUM(value)/COUNT(*)) / (COUNT(*)-1)
.select ((count(*)*sum(value * value) - (sum(value)*sum(value))/((count(*)-1)*(count(*)))) from ... ;
== vôtre. merci~ajouté quelques détection d'erreur dans les fonctions python