user_id assignment_ts experiment_id experiment_assignment
1 2019-01-06 12:00:05.000 1 test
1 2019-03-04 01:45:23.000 2 test
2 2019-01-07 03:45:12.000 1 control
3 2019-03-11 01:45:23.000 2 test每个实验是什么时候开始的?使用实验分配的第一个实例来测试或控制实验,使其等同于实验开始的时间。结果应该如下所示:
如果我使用distinct,我无法对这个问题进行查询,它也不起作用,而且我似乎不知道该如何做?
发布于 2021-02-28 13:21:13
这里可以使用ROW_NUMBER,假设您的SQL数据库支持它:
WITH cte AS (
SELECT t.*, ROW_NUMBER() OVER (PARTITION BY experiment_id ORDER BY assignment_ts) rn
FROM yourTable t
WHERE experiment_assignment IN ('test', 'control')
)
SELECT user_id, assignment_ts, experiment_id, experiment_assignment
FROM cte
WHERE rn = 1;发布于 2021-02-28 13:27:37
使用聚合函数MIN:
SELECT experiment_id, MIN(assignment_ts) as startDate
FROM yourTable
GROUP BY experiment_id假设您要获取的是每个experiment_id的第一个assignment_ts日期。
https://stackoverflow.com/questions/66406024
复制相似问题