我有一个相对复杂的MySQL查询,希望你能帮助我。

我需要使用多个查询进行计算,输出应存储在新列中。

所以类似于:

(query1 + query2 + queryN)/ query3

在最后,我想把所有工作日的雨量加起来,但周日然后除以星期日。听起来很疯狂我知道但在更大的图片中有意义(有点;))。

我能够在网上找到一些基本的例子但不幸的是,没有一个像安静一样复杂。对于我的代码到目前为止(为了更好的可读性,我删除了连接和不必要的"Where"子句):

(
(
SELECT 
  Rain_mm

From 
  weather 

WHERE 
  Tempreture != 0 AND 
  DAYOFWEEK(Date) = 1 
) 

+

(
SELECT 
  Rain_mm

From 
  weather 

WHERE 
  Tempreture != 0 AND 
  DAYOFWEEK(Date) = 1 
) 
)

/

(
(
SELECT 
  Rain_mm

From 
  weather 

WHERE 
  Tempreture != 0 AND 
  DAYOFWEEK(Date) = 6 
)  ) 

AS Rain_Calc);

不幸的是,MySQL Workbench在第一行显示错误,但说实话,这个错误可能在语句中无处不在。

"Error Code: 1064:You have an error in your SQL Syntax."

在此先感谢您的帮助!

分析解答

可能是条件聚合

SELECT 
  sum(case when dayofweek(date) not in (6,7) then Rain_mm else 0 end) days1to5,
  sum(case when dayofweek(date) = 6 then Rain_mm else 0 end) days6,
  sum(case when dayofweek(date) not in (6,7) then Rain_mm else 0 end) /
  sum(case when dayofweek(date) = 6 then Rain_mm else 0 end) ratio
From  weather 
WHERE Tempreture <> 0;