2016-08-11 11 views
0

LEFT JOINを使用して、合計とカウントを取得するにはどうすればよいですか?今SUM、LEFT JOINでカウントしますか?

行が

それはサブクエリなしで行うことは可能です。..両方のテーブルから合計しますか?

SELECT 
    t1.Continent, t1.Region, 
    COUNT(t1.Region) AS cRegion, t1.LifeExpectancy, 
    SUM(t1.Population) AS sPopulation, SUM(t2.CountryCode) AS cCities 
    FROM Country AS t1 
    LEFT JOIN City AS t2 ON t1.Code = t2.CountryCode 
    GROUP BY t1.Region 
    ORDER BY t1.Continent ASC 

市表 enter image description here

国表 enter image description here

答えて

0

はあなたのクエリには、どんな意味がありません。あなたは地域によってCityCountryテーブル、およびグループを一緒に参加した場合でも、あなたは、各地域のために、以下の統計情報を計算することができます。地域ごとの都市の

  • 地域ごとに国の
  • 地域ごとの総人口


SELECT t1.Region, 
     COUNT(*) AS cityCount, 
     COUNT(DISTINCT t1.code) AS countryCount, 
     SUM(t2.Population) AS regionPop 
FROM Country t1 
LEFT JOIN City t2 
    ON t1.Code = t2.CountryCode 
GROUP BY t1.Region 
+0

ありませんpe。 regionPopの合計が正しくありません:( –

+0

正確な問題は何ですか? –