聚合SQL函数以仅从每个分组中获取一个

聚合SQL函数以仅从每个分组中获取一个,sql,sql-server,tsql,sql-server-2000,Sql,Sql Server,Tsql,Sql Server 2000,我有一个表,我需要用SQL Server 2000中的许多字段对其进行规范化。 它包含两个字段,我用它们来产生规范定义的不同组合。 ID和速率:有多行具有相同的ID和速率 我首先通过对id和Rates组合进行分组创建了一个临时表 SELECT ID, Count(*) AS IDCounts, SUM(RATE) As Total INTO #Temp GROUP BY ID 现在我使用Distinct只查找唯一的组合。因此,我将有多个ID组共享相同的总数和ID计数 SELECT DISTI

我有一个表,我需要用SQL Server 2000中的许多字段对其进行规范化。 它包含两个字段,我用它们来产生规范定义的不同组合。 ID和速率:有多行具有相同的ID和速率

我首先通过对id和Rates组合进行分组创建了一个临时表

SELECT ID, Count(*) AS IDCounts, SUM(RATE) As Total 
INTO #Temp
GROUP BY ID
现在我使用Distinct只查找唯一的组合。因此,我将有多个ID组共享相同的总数和ID计数

SELECT DISTINCT Total, IDCounts
INTO #uniques
FROM #Temp
现在我的问题是如何将单个ID连接回IDCounts和Total的不同分组,并将其放入新表中?只要我使用同一个分组中的一个ID,组中的哪一个ID并不重要

保留临时表(尽管这可以在一个查询中完成):


将“Min(ID)AS FirstID”添加到select to#uniques中。

尝试以下操作:

SELECT MAX(ID) AS Id, Count(*) AS IDCounts, SUM(RATE) As Total 
FROM SOMETABLE
GROUP BY IDCounts, Total

如果您想要2K解决方案,为什么问题被标记为2k5?为什么SQL Server 2000意味着没有T-SQL?
SELECT MAX(ID) AS Id, Count(*) AS IDCounts, SUM(RATE) As Total 
FROM SOMETABLE
GROUP BY IDCounts, Total