首页 > 解决方案 > SQL划分2列

问题描述

我需要在 SQL 中计算人口密度。我有一个人口列和一个面积列,但我不知道如何执行它,我得到一个除以零的错误。

这是我尝试过的:

select name, population, gdp, area, [population]/[area] as pop_density 
from country 
group by name 
order by gdp;

标签: sqldivision

解决方案


为什么需要group by
不需要分组。
即使您确实需要group by,您也不能选择非聚合列,例如:
population, gdp, area
只需检查null0area

select 
  name, population, gdp, area, 
  case coalesce(area, 0) 
    when 0 then null 
    else population / area 
  end as pop_density 
from country 
order by gdp

推荐阅读