0
我的子報告通過ID列表。每個ID都有一個分配給它的位置。該報告按地點(組#1)分組,然後按ID(組#2)分組。計數重複記錄數
在該表中,ID的應該是這樣的:
14600
14602
14602
14602
14700
14703
14704
14704
我所需的輸出是,因爲有2個ID與多個條目。我怎樣才能輕鬆計算出來?
我的子報告通過ID列表。每個ID都有一個分配給它的位置。該報告按地點(組#1)分組,然後按ID(組#2)分組。計數重複記錄數
在該表中,ID的應該是這樣的:
14600
14602
14602
14602
14700
14703
14704
14704
我所需的輸出是,因爲有2個ID與多個條目。我怎樣才能輕鬆計算出來?
聽起來就像您正在查找COUNT
和DISTINCT
的組合,並確保有多次出現。你可以通過類似的方法來實現:
SELECT COUNT(DISTINCT id) FROM table_name HAVING COUNT(*) > 1
這將返回表中不同ID的數量。在你的情況下,這是。
你可以試試這個:
DECLARE @temp table(num integer);
INSERT INTO @temp(num) VALUES (14600), (14602), (14602), (14602), (14700), (14703), (14704), (14704);
SELECT COUNT(distinct num) repeats
FROM
(SELECT
num, count(num) as counts
FROM @temp
GROUP BY num
HAVING COUNT(num) > 1) a;
並不能使其返回5? – heringer
是的,我的壞 - 讓自己有點困惑!要獲得只有多行發生的**行數,還需要'HAVING count(*)> 1'。我已經更新了我的答案,包括:) –
嗯,好主意,但我認爲它仍然需要調整工作。試試這個:select count(*)from(SELECT id FROM table_name group by id HAVING COUNT(*)> 1)ALIAS – heringer