首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从表中为表中唯一的序列号选择最新的8行

如何从表中为表中唯一的序列号选择最新的8行
EN

Stack Overflow用户
提问于 2019-07-04 12:46:44
回答 1查看 68关注 0票数 1

我使用labview制作了自动测试GUI,用于测试我们的8通道设备。每次测试完成时,都会自动将8行添加到SQL Server表中,并且所有这8行都记录有相同的序列号。每次测试完成时,无论该序列号是否已经测试,都会添加8行。我想要做的是获取所有唯一序列号的最新数据(总是8行)。

到目前为止,我只能使用以下代码对单行输入测试执行此操作:

代码语言:javascript
复制
 SELECT TestIndex 
 FROM dbo.TROSA_101_InitialTestingLD_AsicLpTest_CH
 WHERE TestIndex IN (SELECT MAX(TestIndex) FROM dbo.TROSA_101_InitialTestingLD_AsicLpTest_CH GROUP BY SerialNumber)

本质上,我只想删除重复的8行数据(每行对应一个测试),或者换句话说,为每个唯一的SerialNumber值获得最新的8行数据。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-04 12:49:04

我不完全理解您的业务逻辑,但是通过使用ROW_NUMBER,您的问题最后一句中的需求很容易实现

代码语言:javascript
复制
SELECT *
FROM
(
    SELECT *, ROW_NUMBER() OVER (PARTITION BY SerialNumber ORDER BY TestIndex DESC) rn
    FROM dbo.TROSA_101_InitialTestingLD_AsicLpTest_CH
) t
WHERE rn <= 8;

上面的查询将返回每个序列号的8个最新记录,其中" recent“表示最大的TestIndex值。

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

https://stackoverflow.com/questions/56880788

复制
相关文章

相似问题

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