我正在从两个不同的表中获取经计算的总数,这些表与试图找出犯罪率对人口的比率有关。
这是我的代码:
SELECT SUM(INCIDENT_BY_REGION.Total) AS TotalCrime,
SUM(REGION.Population) AS TotalPopulation,
(TotalCrime/TotalPopulation) AS Rate
FROM INCIDENT_BY_REGION JOIN REGION
ON INCIDENT_BY_REGION.RegionID = REGION.RegionID;
但是我得到一个错误,
错误代码1054:“字段列表”中的未知列“ TotalCrime”
。
我要寻找的是人口犯罪率。 有什么建议么?
答案 0 :(得分:0)
请尝试以下操作,在计算“费率”时不应使用别名。另外,使用case-when表达式更安全,而使用sum(region.population) = 0
来避免divide by zero
错误。
SELECT SUM(INCIDENT_BY_REGION.Total) AS TotalCrime,
SUM(REGION.Population) AS TotalPopulation,
case when SUM(REGION.Population) > 0 then
SUM(INCIDENT_BY_REGION.Total)/SUM(REGION.Population)
else 0 end AS Rate
FROM INCIDENT_BY_REGION JOIN REGION
ON INCIDENT_BY_REGION.RegionID = REGION.RegionID;