2013-04-07 20 views
0

這是一個查詢:是否有任何功能用於統計查詢結果中的組?

SELECT count(*) 
FROM Points 
WHERE i_id IN (1, 22, 579, 5887) AND i_requirement_id is not null 
GROUP BY i_requirement_id 

我得到的需求數量各小組。

我需要得到所有組的計數。

例如從鄰桌

i_id  i_requirement_id 
1   1022 
22  1022 
579  1059 
5887  1022 

我在結果得到3和1。但我只需要得到2,因爲在表中,我只有2組i_requrement_id。

回答

0

也許沿

SELECT COUNT(DISTINCT i_requirement_id) 
FROM Points 
WHERE i_id IN (1, 22, 579, 5887) AND i_requirement_id is not null 

不同子句允許你行只計算不同的項目

+0

很抱歉,但我試圖迴避這樣的疑問。我使用了這種變體,比如填充。我希望有人告訴我一個功能。 – user1848942 2013-04-07 13:29:57

0

爲什麼你不喜歡法比奧的解決方案的東西嗎?這很好。
第二種方法是使用分析函數。

SELECT 
    i_requirement_id, 
    count(*) as count_inside_group, 
    count(i_requirement_id) over() as count_of_groups 
FROM Points 
WHERE i_id IN (1, 22, 579, 5887) AND i_requirement_id is not null 
GROUP BY i_requirement_id 

fiddle

相關問題