回答
你的意思是你的查詢:
SELECT ID, COUNT(*) AS "Count"
FROM tableX
GROUP BY ID ;
產生這樣的:
ID Count
1 5
2 2
3 1
但你希望?:
ID Count
1 5
1 5
1 5
1 5
1 5
2 2
2 2
3 1
然後,這個查詢將做到:
SELECT grp.ID, grp."Count"
FROM
tableX AS t
JOIN
(SELECT ID, COUNT(*) AS "Count"
FROM tableX
GROUP BY ID
) AS grp
ON grp.ID = t.ID ;
它可以在幾乎所有的DBMS和所有版本的SQL-Server中工作。對於SQL Server 2005和更高版本(以及Oracle和Postgres),OVER
子句的答案看起來更加優雅,可能是首選。在你的版本中測試哪一個更高效。我認爲在2012版本中,OVER
子句的查詢效率很高。
你說「用OVER子句答案更好。」但根據我的經驗,這些窗口功能可能會造成巨大的性能下降。有些時候,當我使用'Count()OVER'時,查詢變得非常緩慢,並且當我剛剛將行人連接到聚合子查詢時又變得很快,就像這裏一樣。 – ErikE 2012-08-02 00:01:52
@ErikE:你很可能是對的。我會編輯。 – 2012-08-02 00:03:23
您可以使用count()
與OVER
clause:
select a, count(*) over (partition by a) as [count]
from tableName ;
這就是所謂的窗函數。我建議你研究這些。
糟糕,我沒有注意到[tag:SQL-Server]標籤。這比我的回答更好,更簡單。 – 2012-08-01 21:11:35
謝謝,我開始在這個網站回答。這非常有趣。它也提高了我的英語 – 2012-08-01 21:13:20
@ypercube - 但它沒有說'SQL Server 2005 +'。你的回答是正確的,不知道你是否應該刪除它 – Lamak 2012-08-01 21:37:39
- 1. 如何統計Python 3中的字典中的每個值組?
- 2. 如何統計每個類型在數組中的數量?
- 3. 如何統計數組中每個項目的出現次數?
- 4. 如何統計數組中每個值的出現次數?
- 5. 如何統計每行的列數?
- 6. 如何統計每天的記錄數?
- 7. 如何統計pandas組中每個對象的行數?
- 8. 如何獲得一個數組來計算有多少個數字,而不是統計每個數字的值?
- 9. 每組Solr統計信息
- 10. 統計字符串數組中每個字最後出現後的字數
- 11. 如何統計每天搜索字詞的Twitter推文數
- 12. 如何統計lua字符串中的子數組數量
- 13. 如何統計數字範圍內的數組項目
- 14. 統計每個字符
- 15. 如何統計NSLayoutManager中的字形數
- 16. 如何統計變量中的數字
- 17. 如何用Python統計每個矩陣行的字符?計數器()?
- 18. MySQl統計計數與組
- 19. 如何繪製每個組的boxplot中的附加統計數據?
- 20. 如何統計數字每行大熊貓的出現次數最多?
- 21. 統計數組中的字符數和字數
- 22. 如何統計多索引數據框中每天的行數?
- 23. 如何統計數字中的數字,包括前導零?
- 24. 如何統計組返回的組數量?
- 25. Cloudant創建視圖來統計每個最後的值數組字段
- 26. 我如何統計一個數組中的特定字母的數量,Perl?
- 27. SQL:如何統計一個字符串中每個元音的個數
- 28. 如何統計IEnumerable <int>中int []的每個數字存在多少次?
- 29. Sql Server 2005 - 每個組件每次運行的SSIS統計
- 30. 如何統計每行中單詞的出現次數
請標記您的SQL Server版本。 – 2012-08-01 22:10:00