通过选择平均两列

时间:2019-01-14 09:23:16

标签: sql

我尝试创建范围的平均值,但没有用

SELECT AVG(XXX) 
WHERE (SELECT (MAX(`VALUE_`) -MIN(`VALUE_`)) AS XXX 
FROM `rs_hot_end` 
WHERE (`RESULT_ID` =1050 OR `RESULT_ID`=1051)
AND `JOB_NO`= 'BEG0999'
AND `MC_NO` = 'BP52' 
GROUP BY `TEST_DATE`,`TEST_TIME`,`JOB_NO`,`MC_NO`) ;

并且也尝试过

(SELECT AVG((MAX(`VALUE_`) -MIN(`VALUE_`))) AS XXX 
    FROM `rs_hot_end` 
    WHERE (`RESULT_ID` =1050 OR `RESULT_ID`=1051)
    AND `JOB_NO`= 'BEG0999'
    AND `MC_NO` = 'BP52' 
    GROUP BY `TEST_DATE`,`TEST_TIME`,`JOB_NO`,`MC_NO`) 

1 个答案:

答案 0 :(得分:0)

您可以将其放在子查询中,然后汇总该结果。

SELECT AVG(MaxValue - MinValue) AS AvgValueDiff
FROM
(
   SELECT 
     JOB_NO, MC_NO, TEST_DATE, TEST_TIME,
     MIN(`VALUE_`) AS MinValue,
     MAX(`VALUE_`) AS MaxValue
   FROM `rs_hot_end` 
   WHERE RESULT_ID IN (1050, 1051)
     AND JOB_NO = 'BEG0999'
     AND MC_NO = 'BP52'
   GROUP BY 
     JOB_NO, MC_NO, TEST_DATE, TEST_TIME
) q;