我有一个表,需要对 SQL-Server 2000 中的许多字段进行规范化。 它包含 2 个字段,我用它们来提出规范定义的不同组合。 ID和费率:有多行相同的ID和费率
我首先通过对 ID 和费率组合进行分组来创建临时表。
SELECT ID, Count(*) AS IDCounts, SUM(RATE) As Total
INTO #Temp
GROUP BY ID
现在我使用 Distinct 来仅查找唯一的组合。因此,我将有多个 ID 组共享相同的 Total 和 IDCounts
SELECT DISTINCT Total, IDCounts
INTO #uniques
FROM #Temp
现在我的问题是如何将单个 ID 连接回 IDCounts 和 Total 的不同分组并将其放入新表中?只要我使用同一组中的 ID,组中的哪一个 ID 并不重要。
最佳答案
保留临时表(尽管这可以在单个查询中完成):
SELECT ID, Count(*) AS IDCounts, SUM(RATE) As Total
INTO #Temp
GROUP BY ID
SELECT Total, IDCounts, MIN(ID) AS SomeID
INTO #uniques
FROM #Temp
GROUP BY Total, IDCounts
关于sql - 聚合 SQL 函数以从每个分组中仅获取一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3242552/