首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于从表中检索数据的SQL查询

用于从表中检索数据的SQL查询
EN

Stack Overflow用户
提问于 2021-02-28 13:12:18
回答 2查看 47关注 0票数 0
代码语言:javascript
复制
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,我无法对这个问题进行查询,它也不起作用,而且我似乎不知道该如何做?

EN

回答 2

Stack Overflow用户

发布于 2021-02-28 13:21:13

这里可以使用ROW_NUMBER,假设您的SQL数据库支持它:

代码语言:javascript
复制
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;
票数 0
EN

Stack Overflow用户

发布于 2021-02-28 13:27:37

使用聚合函数MIN:

代码语言:javascript
复制
SELECT experiment_id, MIN(assignment_ts) as startDate
FROM yourTable
GROUP BY experiment_id

假设您要获取的是每个experiment_id的第一个assignment_ts日期。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66406024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档