2010-07-14 86 views
2

我有一張表,我需要使用很多字段進行規範化處理在SQL-Server 2000中。 它包含2個領域,我正在使用提出不同的規格定義的組合。 ID和費率:有多行相同的ID和費率聚合SQL函數從每個分組中只抓取一個

我第一次創建了一個臨時表,通過分組ID和費率組合。

SELECT ID, Count(*) AS IDCounts, SUM(RATE) As Total 
INTO #Temp 
GROUP BY ID 

現在我使用Distinct來查找唯一的組合。所以我有多個ID組共享相同的總和IDCounts

SELECT DISTINCT Total, IDCounts 
INTO #uniques 
FROM #Temp 

現在的問題是如何加入一個ID回IDCounts和總的是不同的分組並將它放入一個新表?只要我使用同一個分組中的某個ID,哪個組中的哪個ID就無關緊要。

+0

爲什麼問題標記2K5如果你想2K的解決方案? – 2010-07-14 00:38:13

+0

爲什麼SQL Server 2000不包含T-SQL? – LittleBobbyTables 2010-07-14 00:38:32

回答

2

保持你的臨時表(雖然這可能在一個單一的查詢來完成):

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 
+0

再次感謝凱德! – stevenjmyu 2010-07-14 00:56:27

2

添加 「閩(ID)AS FirstID」,以選擇到#uniques。

-1

嘗試是這樣的:

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