2014-09-02 86 views
0

我很困惑,爲什麼這些查詢返回不同數量的記錄,請注意XXX表格只包含三列A,B,C計算數量重複的行

查詢1)

SELECT SUM (Counts) FROM 
    (
     SELECT Count(*) Counts FROM dbo.XXX 
       GROUP BY A,B,C 
       HAVING COUNT(*) = 1 
    ) T 

查詢2)

SELECT A, B, C 
    FROM [dbo].XXX 
    GROUP BY A,B,C 
+1

因爲它們是不同的查詢? 1.有一個having子句只返回'count = 1'的結果,並且2.不包含 – Tanner 2014-09-02 13:09:26

+0

第二個查詢是簡單的select語句,group by和1st查詢正在計數n個子查詢..顯然它會給出不同的結果集 – mohan111 2014-09-02 13:09:30

回答

3

也許是因爲第一個查詢只相加,通過數恰好等於1。你的第二個查詢將返回所有罪狀有一批小組,小組由計數是否爲一個或多個。

因此,有可能A,B和C的組合出現多次。如果是這種情況,你的數量將不會相同。

+0

A,B,C是整個表 – Costa 2014-09-02 13:17:49

+0

@Costa - 無論它是整個表都沒關係。我甚至不確定你的意思。我要說的是,在你的表格中,你必須有A和B以及C的值出現一次以上的情況。因爲,如果他們沒有這兩個查詢會返回相同的結果。 – 2014-09-02 13:22:20

0

查詢1正在計算A,B & C在表中唯一的記錄數。

查詢2給出了表中A,B & C的唯一組合。