通过查询计算SQLiteDB的下四分位数和上四分位数

时间:2013-01-25 19:55:07

标签: mysql sql sqlite xampp

我想计算这些fiddle with my DB and the query

中我称之为“差异”的值的上四分位数和下四分位数

如何使用SQLite执行此操作?

http://www.sqlite.org/contrib?orderby=date,extension-functions.c上有一个扩展名,它有这些命令。

如果这对我的问题是一个充分的解决方案?如何在Windows-XAMPP环境中集成它?

3 个答案:

答案 0 :(得分:2)

我发现基于rather unpleasant approachthis blog post - 基本上,使用GROUP_CONCAT按顺序列出所有值,使用子串函数提取第25或第75百分位的值。

答案 1 :(得分:2)

这里有两个计算上四分位数(Q3)的版本:

注意:如果要实现使用N-1的QUARTILE / QUARTILE.INC,可以通过递减大小而不是递增它来实现。 SELECT @Q3_POS = 0.75*(COUNT(*)-1.00) from [Table1]

enter image description here

来源:Why Excel has Multiple Quartile Functions and How to Replicate the Quartiles from R and Other Statistical Packages

更多测试:

答案 2 :(得分:0)

我在查询本身中计算了上四分位数和下四分位数。

请检查这个小提琴:http://sqlfiddle.com/#!2/4f1a82/31/0

基本上逻辑是:

  • 上四分位数==平均值(“最高数字”和平均值(“整数数据”))
  • 下四分位数==平均值(“最低数字”和平均值(“整数数据”))

因此添加的查询逻辑是:

((MIN(diff)+ AVG(diff)) / 2) AS lowerQuartile,
((MAX(diff)+ AVG(diff)) / 2) AS upperQuartile,