我需要列出说一种语言的人数,到目前为止我已经提出:
SELECT
language.name,
(country.population * (language.percentage / 100))
FROM
language,
country
ORDER BY name;
这会返回每种语言和说出来的数字,但是对于每个拥有该语言的人口的国家/地区都会这样做,例如:
"Afghan Persian";1624568.00000000000000000000
"Afghan Persian";5269297.00000000000000000000
"Afghan Persian";1052017.50000000000000000000
我能做些什么才能使每种语言只占一行,并说出世界总人口的总和?
答案 0 :(得分:1)
您需要使用聚合函数(即sum)和group-by。所以你的查询看起来像:
select language.name , sum((country.population * (language.percentage / 100)))
from language, country
group by language.name
order by name
答案 1 :(得分:0)
首先,您需要加入。一个简单的规则:从不在<base path="/" />
子句中使用逗号。
然后表别名使查询更容易理解。而且,您需要一个聚合查询。 。 。 FROM
和GROUP BY
:
SUM()