回答

收藏

从历史记录表中选择最新状态

技术问答 技术问答 289 人阅读 | 0 人回复 | 2023-09-14

我继承了以下结构:( \  s; ?* B3 d8 |* O" _1 d" K: W
ID   Name   Timestamp   Data----------------------------1    A     40              ...2    A     30                                        ...3    A    20                                                                                                                                                                                                                              ...4    B     40              ...5    B    20                                                                                                                                                                                                                              ...6    C     30                                        ...7    C    20                                                                                                                                                                                                                              ...8    C      10          ...ID是标识字段和主键,NameandTimestamp字段上有非唯一的索引。
* q9 _6 k. m: |* M* s$ o最有效的获取每个项目名称最新记录的方法是什么,即上述行表 1    ,4    和 6    ,因为它们是最先进的日期项,应该归还
0 P$ G1 T+ \9 I+ w& w& F$ i    和 ?    分别。
2 U; g, t1 y; O; y* I. y  u6 Q0 z                                                               
  o3 W9 J" p3 F4 b, I0 x    解决方案:                                                               
# f7 K5 F4 V1 k) F/ g- D6 a5 O6 T                                                                SQL Server 2005(开始):
$ _( {# S3 P* n) j5 s/ q$ b2 zWITH MostRecentRows AS(    SELECT ID,Name,Data,   ROW_NUMBER() OVER (PARTITION BY Name ORDER BY TimeStamp DESC) AS 'RowNumber'    FROM MySchema.MyTable) SELECT * FROM MostRecentRows WHERE RowNumber =
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则