我有一个相对复杂的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;