首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查用户过去是否有记录?

如何检查用户过去是否有记录?
EN

Stack Overflow用户
提问于 2021-11-11 11:25:55
回答 1查看 31关注 0票数 0

样本表

代码语言:javascript
运行
复制
================================================================
id | user_id  | certificate_id  | is_retraining  | created_on
================================================================
1  | 1        |   1             | false          |  2021-01-01 
2  | 1        |   2             | false          |  2021-01-02 
3  | 2        |   1             | false          |  2021-01-03 
4  | 2        |   2             | false          |  2021-03-03 
5  | 3        |   1             | true           |  2021-10-10 
6  | 2        |   2             | true           |  2021-10-10

上面的示例表由Users info who completed certifications组成。用户也可以参加再培训,但他/她应该在重新学习之前完成一门课程。

User Id: 2曾在certificate 2上接受过再培训,他过去有过同样的记录(之前完成了相同的证书),但是User id: 3过去没有证书,但他直接选择了再培训。

我们如何识别过去没有证书(特别是证书)就参加再培训的用户?

理想情况下,我寻找以下结构,为所有的再培训?

代码语言:javascript
运行
复制
=============================================
user_id  | certificate_id  | has_past_records
==============================================
2        |   2             | true
3        |   1             | false 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-11 11:44:30

您只需使用LAG()来查找前一条记录的值。

如果上一条记录不存在,LAG()默认将返回NULL

因此,下面的代码确定了三种可能性..。

initial-training

  1. 以前从未接受过训练,
  2. 是在前一次再训练之后再训练的,
  3. 是继上一次
  4. 之后再训练的。

代码语言:javascript
运行
复制
WITH
  history AS
(
  SELECT
    *,
    LAG(is_retraining) OVER (PARTITION BY user_id, certificate_id
                                 ORDER BY created_on
                            )
                              AS previous_training_status
  FROM
    your_table
)
SELECT
  user_id,
  certificate_id,
  CASE
    WHEN previous_training_status IS NULL THEN 'never_previously_trained'
    WHEN previous_training_status = true  THEN 'previously_retrained'
                                          ELSE 'previously_trained'
  END
FROM
  history
WHERE
  is_retraining = true
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69927486

复制
相关文章

相似问题

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