2014-04-16 142 views
0

我想做一個嵌套聚合,這可能嗎?SQL Server - 嵌套聚合函數

SELECT SUM(COUNT(memberID)) FROM table 

我的情況如下: 我有誰具有相同的成員編號爲他們在同一個表的家屬成員時,我嘗試做以下SQL Server 2012將返回一個錯誤。我想根據memberID得到成員及其依賴者的數量,但是,我希望在另一列標識爲e的主註冊人旁邊的列中計數。

SELECT memberID, memberName, COUNT(memberID) 
FROM table 
WHERE memberRole = 'e' 

以上將返回1爲所有的結果,所以我在想,如果我算memberIds,再總結他們的工作,但該返回了一個錯誤,我是不是做錯了什麼?什麼是達到這一porblem

回答

2

你原來的查詢是正確的,有輕微的變化:

SELECT MemberID, MemberName, (SELECT COUNT(MemberID) FROM table WHERE MemberID = M.MemberID GROUP BY MemberID) AS MemberCount 
FROM table M 
WHERE M.MemberRole = 'E' 
+0

真棒!我沒有想到使用子查詢。謝謝你,先生。 – user3221917

0

嘗試最好的辦法:

SELECT memberID, memberName, Sum(CNT) From 
(
    SELECT memberID, memberName, COUNT(memberID) CNt 
    FROM table 
    WHERE memberRole = 'e' 
) t 
group by memberID, memberName