首页 > 解决方案 > SQL 列未找到问题

问题描述

当我运行我的代码时,我得到问题列 s.popchage2000 不存在。请帮忙

select name,
       SUM(population_2010 - population_2000) as popchage2000,
       SUM(population_1950 - population_1900) as popchange1900
from states as s
where s.popchage2000 > s.popchange1900
group by name;

标签: sql

解决方案


将其包装GROUP BY在派生表中。然后您可以在主查询中使用列名。

select name, popchage2000, popchange1900
from
(
  select name,
         SUM(population_2010 - population_2000) as popchage2000,
         SUM(population_1950 - population_1900) as popchange1900
  from states
  group by name
) s 
where s.popchage2000 > s.popchange1900

推荐阅读