2017-02-15 55 views
0

我有一個表是這樣的:SQL計數加入單表

Name Id  Amount 
Name1 1  99 
Name1 1  30 
Name1 9  120.2 
Name2 21  348 
Name2 21  21 
Name3 41  99 

我要選擇的每名,他們組由它們的ID和計數的交易(不和)。所以我想下表:

Name Id  Count 
Name1 1  2 
Name1 9  1 
Name2 21  2 
Name3 41  1 

我想這個SQL:

SELECT 
    [Name], 
    [Id] 
FROM table1 A 
INNER JOIN (
       SELECT 
       [Id], 
       count([Amount]) as 'Count' 
       FROM 
        table1 
       GROUP BY [Id] 
      ) 
B ON A.[Id] = B.[Id] 

,但我得到了以下錯誤:Ambiguous column name 'Id'.

我在做什麼錯?

+1

你不需要內連接。 –

+0

從@JuanCarlosOropeza查看下面的答案。但是你得到這個錯誤的原因是因爲在你的子查詢中,不可能知道你想從哪個表中找到Id。請記住,子查詢和主查詢都在範圍內。您還需要將該子查詢與主查詢相關聯。 –

回答

3
SELECT 
     [Name], 
     [Id], 
     count([Amount]) as 'Count' 
FROM 
     table1 
GROUP BY [Name], [Id] 
+0

完美,如此簡單! – Richard

0
SELECT 
A.[Name], 
A.[Id] 
FROM table1 A 
INNER JOIN (
      SELECT 
      table1.[Id], 
      count([Amount]) as 'Count' 
      FROM 
       table1 
      GROUP BY table1.[Id] 
     ) 
B ON A.[Id] = B.[Id] 
+0

@SeanLange Isnt通過'[ID]'加入? –

+0

啊,是的....在那裏很清楚。 :( –