如何在多选语句中执行运算符?MySQL



目标是林地/(森林+非森林地区(

这是我尝试过的,但显示了等错误

操作数应包含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

最新更新