【问题标题】:SQL for adding another column showing Nth occurrence of unique ID within data-setSQL 用于添加另一列,显示数据集中第 N 次出现的唯一 ID
【发布时间】:2021-02-25 00:07:32
【问题描述】:

我有一张患者就诊表,其中每一行都是一次就诊。有一个带有唯一患者 ID 的列,表示访问的客户是哪个客户。我想添加另一列,显示该患者 ID 在数据集中第 N 次出现。所以第一次访问显示 1,第二次访问显示 2,依此类推。我尝试搜索类似的问题,但尚未找到任何内容,非常感谢您的帮助!

【问题讨论】:

  • 请提供表格定义、样本输入数据和预期输出。您是否真的想将其存储在表中,如果有人删除了一行会发生什么,您将不得不重新计算。最好在需要的时候计算ROW_NUMBER() OVER (PARTITION BY PatientID ORDER BY Date)

标签: sql csv amazon-athena


【解决方案1】:

您可以使用row_number() 枚举值:

select v.*,
       row_number() over (partition by patient_id order by visit_date) as seqnum
from visits v;

这称为窗口函数(或更具体地称为排名函数)。它为每个“分区”(即每个patient_id)枚举从1 开始的没有间隙的行。 order by 指定排序。

【讨论】:

猜你喜欢
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 2019-08-19
  • 1970-01-01
  • 1970-01-01
  • 2021-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多