加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何计算SQLite中的值的中值?

发布时间:2020-12-12 19:11:34 所属栏目:百科 来源:网络整理
导读:我想计算一个数字行中的中值.我如何在SQLite 4中这样做? 假设中位数是有序列表中间的元素. SQLite(4或3)没有任何内置的功能,但可以手动执行: SELECT xFROM MyTableORDER BY xLIMIT 1OFFSET (SELECT COUNT(*) FROM MyTable) / 2 当有数量的记录时,通常将中
我想计算一个数字行中的中值.我如何在SQLite 4中这样做? 假设中位数是有序列表中间的元素.

SQLite(4或3)没有任何内置的功能,但可以手动执行:

SELECT x
FROM MyTable
ORDER BY x
LIMIT 1
OFFSET (SELECT COUNT(*)
        FROM MyTable) / 2

当有数量的记录时,通常将中位数定义为两个中间记录的平均值.
在这种情况下,平均值可以这样计算:

SELECT AVG(x)
FROM (SELECT x
      FROM MyTable
      ORDER BY x
      LIMIT 2
      OFFSET (SELECT (COUNT(*) - 1) / 2
              FROM MyTable))

结合奇数和偶数情况,结果如下:

SELECT AVG(x)
FROM (SELECT x
      FROM MyTable
      ORDER BY x
      LIMIT 2 - (SELECT COUNT(*) FROM MyTable) % 2    -- odd 1,even 2
      OFFSET (SELECT (COUNT(*) - 1) / 2
              FROM MyTable))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读