2012-06-16 24 views
0

我有這樣的一個表:看看有多少不同的國家都在表

ID country 
    ------------- 
    1  US    
    2  Japan   
    3  China   
    4  US   
    5  China   

一個人怎麼可以查詢該表,以便它返回多少個不同的國家都在表(即3)?

+0

[?你嘗試過什麼( http://whathaveyoutried.com/)[你有沒有讀過t他是docs?](http://dev.mysql.com/doc/) – lanzz

+0

對於您更新的問題:使用where加入:)如果您只堅持原始問題(一次一個問題) 。 – user3001

+0

嘿,謝謝你的幫助:) – Mario

回答

2

您需要的是選擇唯一國家的數量。這是通過選擇所有國家條目來完成的,然後將所有國家條目分組,以便每個國家名稱只有一個國家條目。

SELECT count(country) from countrytable group by country;

這是基本相同Andomars答案。從countrytable

+0

爲什麼按不同的國家劃分時效率更高 – 2012-06-16 10:03:40

0

SELECT COUNT(不同的國家)將導致計數的表中是唯一的國家數量。

select count(distinct country) 
from YourTable 
+0

我想這個國家在這裏並沒有幫助,因爲這些國家已經分組了,而不同的國家只不過是另一個捷徑而已? – user3001

+1

您或者需要不同的OR組,而不是兩個。 – Richard

+0

是忘了補充。 –

0

SELECT COUNT(不同國家) 從表1

SELECT count(DISTINCT country) 
FROM table1 c 
WHERE c.item_id = (
SELECT main_id 
FROM table2 
WHERE main_id = c.item_id) 
0

您可以使用此

SELECT country, COUNT(id) 
    FROM [table_name] GROUP BY country 
    LIMIT 0 , 30 

輸出:

country count(id) 
--------------------- 
US  2    
Japan 1   
china 2