2012-10-30 12 views
0

例如,我有一個表格,它有geographychildren這樣的列。我需要統計每個country有多少個childrens如何使用具有不同值的COUNT(*)函數?

我只能做出這樣的事情:

SELECT geography, COUNT(*) 
FROM table1 
GROUP BY children 
ORDER BY geography 

嗯,我有,例如:

Canada John 
Canada John 
Canada Peter 

我需要的結果,例如加拿大有2個children
但是如果我要group by children出現的結果是:

Canada 2 
Canada 1 

如果group by geography然後,

Canada 3 
+0

你的問題是什麼?你想知道什麼? – hims056

回答

1

如果需要只計算一個組中的唯一值,你可以使用COUNT(DISTINCT expr)

SELECT geography, COUNT(DISTINCT children) 
FROM table1 
GROUP BY geography 
ORDER BY geography 
+0

對不起,我剛編輯它來更清楚地解釋我的問題。從第一次不是很清楚。 – Patrick

+0

沒關係。老實說,它仍然可以使用更清晰。但那可能就是我。 – wiill

+0

@帕特里克那麼你的問題是什麼呢? –

4

SUM這裏並不是真的需要。你要做的唯一事情就是將它按geography分組。

SELECT geography, COUNT(DISTINCT children) totalCount 
FROM table1 
GROUP BY geography 
ORDER BY geography 
0

如果地理學鄉間田野 - 你必須按組將它添加到。

SELECT geography, COUNT(children) 
FROM table1 
GROUP BY geography 
ORDER BY geography 
相關問題