You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询用户第二次与第三次资料编辑的时间差中位数

原始数据表
uuiduser_iduser_createdprofile_edited
1c5d134cuser_32022-11-10T19:09:05+00:002022-11-18T18:00:05+00:00
1c5d134buser_32022-11-10T19:09:05+00:002022-11-15T18:00:05+00:00
1c5d134auser_32022-11-10T19:09:05+00:002022-11-14T18:00:05+00:00
1c5d434auser_12022-11-10T19:09:05+00:002022-11-13T19:09:05+00:00
1c8b424buser_12022-11-10T19:09:05+00:002022-11-10T16:09:05+00:00
1c8b424cuser_22022-11-01T19:09:05+00:002022-11-19T19:09:05+00:00
1c8b424auser_22022-11-01T19:09:05+00:002022-11-22T19:09:05+00:00
1c8b424buser_22022-11-01T19:09:05+00:002022-11-24T19:09:05+00:00
1c5d434cuser_12022-11-10T19:09:05+00:002022-11-18T19:09:05+00:00
1c5d434euser_12022-11-10T19:09:05+00:002022-11-16T19:09:05+00:00
1c5d434cuser_12022-11-10T19:09:05+00:002022-11-14T19:09:05+00:00
用户第二次与第三次资料编辑时间统计
user_idsecond_editthird_editdifference
user_12022-11-13T19:09:05+00:002022-11-14T19:09:05+00:0024 hours
user_22022-11-22T19:09:05+00:002022-11-24T19:09:05+00:0048 hours
user_32022-11-15T18:00:05+00:002022-11-18T18:00:05+00:0072 hours
时间差中位数查询语句

针对24、48、72这三个时间差计算中位数,可使用以下SQL查询:

通用排序法

适用于任意数量的时间差,自动计算中位数:

WITH time_diffs AS (
    SELECT 24 AS hour_diff
    UNION ALL
    SELECT 48
    UNION ALL
    SELECT 72
)
SELECT hour_diff AS median_hours
FROM (
    SELECT hour_diff,
           ROW_NUMBER() OVER (ORDER BY hour_diff) AS row_num,
           COUNT(*) OVER () AS total_rows
    FROM time_diffs
) ranked_diffs
WHERE row_num = CEIL(total_rows / 2);

简化查询法

已知仅有三个数值时,可直接选取中间值:

SELECT hour_diff AS median_hours
FROM (VALUES (24), (48), (72)) AS diffs(hour_diff)
ORDER BY hour_diff
LIMIT 1 OFFSET 1;

两种方法都会返回48作为中位数,对应48小时。

内容的提问来源于stack exchange,提问作者akyayik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 10:56:06