【问题标题】:Calculate lower and upper quartile of SQLiteDB via query通过查询计算 SQLiteDB 的下四分位数和上四分位数
【发布时间】:2013-01-09 20:45:43
【问题描述】:

我想计算这些fiddle with my DB and the query中我称之为“差异”的值的上四分位数和下四分位数

如何使用 SQLite 做到这一点?

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

如果这足以解决我的问题?如何将它集成到我的 Windows-XAMPP 环境中?

【问题讨论】:

    标签: mysql sql sqlite xampp


    【解决方案1】:

    我已经在您的查询中计算了上四分位数和下四分位数。

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

    基本上逻辑是:

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

    因此添加的查询逻辑是:

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

    【讨论】:

    • 嗨@Michael Meier,如果这有帮助,请告诉我。
    • 你好,谢谢你的回答,但是第一个四分位数应该是21,中位数应该是30,第三个四分位数应该是70。我没有见过这种计算第一和第三的方法四分位数之前...你确定它是正确的吗?
    • 不,这不会正确计算四分位数。见en.wikipedia.org/wiki/Quartile,一般来说四分位数与均值无关。
    【解决方案2】:

    我发现了一个基于this blog postrather unpleasant approach - 基本上,使用 GROUP_CONCAT 按顺序列出所有值,并使用子字符串函数提取第 25 或第 75 个百分位数的值。

    【讨论】:

      【解决方案3】:

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

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

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

      更多测试:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-06
        • 2021-01-07
        • 2020-10-17
        • 2021-12-26
        • 1970-01-01
        相关资源
        最近更新 更多