2014-03-18 64 views
-1

我有兩個表聚集了兩條表

nameTB包含:

id | name | gender | nationalityid 

nationalityTB包含:

nationalityid | nationalityname

我想創建SQL查詢返回的結果:

nationalityname   female    male  total 
UK       10     5   15 
USA      11     7   18 
+0

? MySql,MS Sql,...? – paqogomez

回答

3

您應該能夠通過連接表,使用該聚合函數條件邏輯(如CASE表達式)輕鬆獲得的結果:

select nt.nationalityname, 
    sum(case when nm.gender = 'Female' then 1 else 0 end) Female, 
    sum(case when nm.gender = 'Male' then 1 else 0 end) Male, 
    count(*) Total 
from nationalityTB nt 
left join nameTB nm 
    on nt.nationalityid = nm.nationalityid 
group by nt.nationalityname; 

SQL Fiddle with Demo您正在使用什麼數據庫平臺