目标是林地/(森林+非森林地区(
这是我尝试过的,但显示了等错误
操作数应包含1列
下面我只是试着先加起来。需要您的帮助
SELECT DISTINCT Year, State, Total_Forested
(SELECT Distinct Year, State, Hectares AS Total_Forested FROM forest_greenproject.`forested and non-forested areas, malaysia, 2000 - 2017` WHERE Category = 'Non-Forested')
+
(SELECT Distinct Year, State, Hectares AS Total_Forested FROM forest_greenproject.`forested and non-forested areas, malaysia, 2000 - 2017` WHERE Category = 'Forested')
FROM forest_greenproject.`forested and non-forested areas, malaysia, 2000 - 2017`
您可以应用条件聚合,正如@Akina在评论部分已经指出的那样。
也就是说,您使用的是聚合(SUM
聚合函数(,但仅针对满足条件的值,在本例中为Category = 'Forested'
。然后你可以把这个值除以所有">公顷";值(假设在">Category"字段中只能有两个选项-森林或非森林(。
当您应用聚合(如SUM
(时,不要忘记添加一个GROUP BY
子句,该子句应包含SELECT
子句中的每个非聚合字段,即">年份";以及">状态";。
SELECT Year,
State,
SUM(CASE WHEN Category = 'Forested' THEN Hectares END) / SUM(Hectares)
FROM forest_greenproject.`forested and non-forested areas, malaysia, 2000 - 2017`
GROUP BY Year,
State