SUM,COUNT与LEFT JOIN?

时间:2016-08-11 14:34:07

标签: mysql

如何通过LEFT JOIN获得正确的总数和计数?

现在两个表中的行总和..

是否可以不使用子查询?

q.deq():y

城市表 enter image description here

国家/地区表 enter image description here

1 个答案:

答案 0 :(得分: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