首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >返回序列号而不是时间戳

返回序列号而不是时间戳
EN

Stack Overflow用户
提问于 2018-06-07 04:56:33
回答 1查看 36关注 0票数 -1

我有一个包含两列的表:

EventTimestamp
EventDescription

我不想从第一列返回一堆时间戳,而是返回一个整数,表示"EventDescription“出现的顺序,最早的时间戳是"1”,并且随着每一行递增。

因此,结果将如下所示:

1  Admission
2  Stuff happened
3  Discharged

这怎麽可能?

编辑

我意识到我遗漏了一个重要的细节。这里有第三个重要的专栏:

PatientID
EventTimestamp
EventDescription

因此,对于每个PatientID,RowNumber需要从1重新开始。换句话说,每个PatientID都需要自己的一系列RowNumbers。相应地,结果将如下所示:

PT1  1  Admission
PT1  2  Stuff happened
PT1  3  Discharged
PT2  1  Admission
PT2  2  Stuff happened
PT2  3  Discharged
PT3  1  Admission
PT3  2  Stuff happened
PT3  3  Discharged
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 05:04:51

使用ROW_NUMBER

SELECT ROW_NUMBER() OVER(PARTITION BY PatientID ORDER BY EventTimestamp ASC) RowNo, 
       EventDescription,
       PatientId
FROM [TABLE]...

ROW_NUMBER

对结果集的输出进行编号。更具体地说,返回结果集分区中某一行的序列号,每个分区中的第一行从1开始。

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

https://stackoverflow.com/questions/50729467

复制
相关文章

相似问题

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