首页 > 解决方案 > 聚合查询 SQL Server 中的示例 ID

问题描述

我有一个聚合大量交易数据的查询。原始数据对每个事务都有唯一的 ID,我需要在每个聚合行中都有一个示例 ID。选择哪个 ID 无关紧要,只要 ID 完好无损,这样我们就可以返回并在需要时从原始交易数据中查找单个示例以进行分组。我无法控制原始数据。

例如,这个:

ID                      Group
6457982468798542364879  Group 1
FR65487985412354        Group 1
1564879541356897        Group 2
6548941236584269        Group 2

进入这个:

ExampleID               Group     Volume
6457982468798542364879  Group 1   2
1564879541356897        Group 2   2

我试图使用 MAX 来执行此操作,但是当 ID 包含字母或超过 20 个字符时,这不起作用。我也尝试使用 STRING_AGG,但一直达到其字符数限制,无论如何我只希望每个组有一个 ID。

数据集很大,因此效率是一个考虑因素。我正在使用 SQL Server 2017 版。

标签: sql-serverstringaggregation

解决方案


如果示例 ID 无关紧要,请选择一个聚合函数,例如MIN()orMAX()并使用它来显示组中的一个 ID。


推荐阅读