Sql 列“city.POPULATION”在选择列表中无效,因为它未包含在聚合函数或GROUP BY子句中
我正在创建一个查询,我看到了这个错误消息。 这是我试图执行的查询:Sql 列“city.POPULATION”在选择列表中无效,因为它未包含在聚合函数或GROUP BY子句中,sql,sql-server-2008,select,Sql,Sql Server 2008,Select,我正在创建一个查询,我看到了这个错误消息。 这是我试图执行的查询: select D.ID_city , D.ID_year , D.NB_deaths , D.NB_births_M , D.NB_births_F , D.NB_population_AS , D.NB_population_ACL , COUNT( NB_births_M+ NB_births_F)/C.population as Birthrate ,
select D.ID_city
, D.ID_year
, D.NB_deaths
, D.NB_births_M
, D.NB_births_F
, D.NB_population_AS
, D.NB_population_ACL
, COUNT( NB_births_M+ NB_births_F)/C.population as Birthrate
, COUNT(NB_deaths_M + NB_deaths_F) as Mortality
from Demography D
join region C
on (D.Id_city =C.Id_city)
group
by D.ID_city
, D.ID_year
, D.NB_deaths_M
, D.NB_births_M
, D.NB_births_F
, D.NB_population_AS
, D.NB_population_ACL
由于在count aggregate函数之外使用该列,因此应将c.population包括在group by中:
COUNT( NB_births_M+ NB_births_F)/C.population
也使用此添加的D.NB_F,因为它也是必要的:
select D.ID_city
, D.ID_year
, D.NB_deaths
, D.NB_births_M
, D.NB_births_F
, D.NB_population_AS
, D.NB_population_ACL
, COUNT( NB_births_M+ NB_births_F)/C.population as Birthrate
, COUNT(NB_deaths_M + NB_deaths_F) as Mortality
from Demography D
join region C
on (D.Id_city =C.Id_city)
group
by D.ID_city
, D.ID_year
, D.NB_deaths_M
, D.NB_deaths_F -- <-- added
, D.NB_births_M
, D.NB_births_F
, D.NB_population_AS
, D.NB_population_ACL
, C.population -- <-- added
您的问题是什么?@user2315555:标题……您是否考虑过在GROUPBY子句中添加“city.POPULATION”列?还是将其从选择列表中删除?这个错误似乎不言自明……D.NB\u deatments\u F,c.population->add in group by可能重复@user3651955:需要更多帮助吗?谢谢你,ansewrs,我不想在group by中添加c.population,然后不要使用计数中的字段。但是在我的计算中,我需要除以总人口,计算出生率+出生率作为出生率