如何将AVG与Count一起使用

时间:2019-09-12 19:51:14

标签: sql sql-server ssms

我有问题,我需要使居住在城市的人平均化。在数据库中,我可以找到这样的活豌豆数量

  SELECT CityName, (SELECT COUNT(*) from People where City.miestoID = 
    People.miestoID) as LivingPeople from City

得到这个 http://prntscr.com/p5dbin

现在我需要将城市中的生活豌豆平均化。我尝试

  SELECT CityName, (SELECT AVG(COUNT(*) from People where City.miestoID = 
    People.miestoID)) as LivingPeople from City

我正在使用SSMS。我找不到任何解决方案,但我知道我做错了什么。

3 个答案:

答案 0 :(得分:1)

我会做的:

select avg(LivingPeople)
from (
  select count(p.miestoID) as LivingPeople
  from City c
  left join People p on p.miestoID = c.miestoID
) x

答案 1 :(得分:0)

如果您想从查询中求平均值,则必须尝试以下操作

select avg(LivingPeople) from 
(SELECT CityName ,(SELECT COUNT(*) from People where City.miestoID = 
People.miestoID) as LivingPeople from City
) a

答案 2 :(得分:0)

假设所有城市至少都有一个人,您可以这样做:

select count(*) * 1.0 / count(distinct miestoID);
from people;

* 1.0是因为SQL Server进行整数除。

这将人数除以城市数。