2017-07-17 4 views
0

私はこの問題を解決するために苦労しています。SQL JOIN親と子どもの親と子の記録数

やろうとしています何
SELECT 
    cooperatives.island, cooperatives.id, 
    COUNT(
    CASE WHEN members.gender = 'Male' THEN 1 ELSE NULL END 
) AS males, 
    COUNT(
    CASE WHEN members.gender = 'Female' THEN 1 ELSE NULL END 
) AS females, 
    COUNT(members.gender) AS genderall 
FROM 
    cooperatives 
JOIN members ON cooperatives.id= members.c_id 
WHERE 
    1 = 1 
GROUP BY 
    cooperatives.island 

この

作業が、私は追加する必要があるものを各島から協同組合の数が表示されます別の列があるとされて

SQL result

ような結果を得ることです。

+0

をカウントには、その後else文を使用しないときは、ケースを使用しているとき。 –

答えて

2

私はあなたが欲しい疑う:

SELECT c.island, COUNT(DISTINCT c.id) as num_cooperatives, 
     SUM(m.gender = 'Male') AS males, 
     SUM(m.gender = 'Female') AS females, 
     COUNT(m.gender) AS genderall 
FROM cooperatives c JOIN 
    members m 
    ON c.id = m.c_id 
GROUP BY c.island; 
+0

ありがとうフェロー私が逃したこと –

関連する問題