2016-08-18 322 views
-2
with ntable (date,pnodeid,rtavg) 
    as 
    ( 
     select date,pnodeid, (select avg(myaverage) from (values (hour8),(hour9),(hour10),(hour11),(hour12),(hour13),(hour14),(hour15),(hour16),(hour17),(hour18),(hour19),(hour20),(hour21),(hour22),(hour23)) as TblAverage(myaverage)) from pjm_realtime 
    ) 
select date,rtavg 
from ntable 
where rtavg > 65 and pnodeid = '51288' and weekday(date) between 0 and 4 and year(date) >= '2014'; 

我得到1064錯誤。試圖獲得多列的平均值並將其用作搜索條件語法錯誤意外與

+3

MySQL沒有CTE。 – Nicarus

回答

0

MySQL沒有CTE/WITH;但是,您可以簡單地子查詢,如下所示:

select date, rtavg 
from 
( 
    select date, pnodeid, (select avg(myaverage) from (values (hour8),(hour9),(hour10),(hour11),(hour12),(hour13),(hour14),(hour15),(hour16),(hour17),(hour18),(hour19),(hour20),(hour21),(hour22),(hour23)) as TblAverage(myaverage)) rtavg from pjm_realtime 
) btable 
where rtavg > 65 and pnodeid = '51288' and weekday(date) between 0 and 4 and year(date) >= '2014'; 
+0

感謝您的幫助,非常感謝 –

0

WITH語法是MySQL不支持的SQL-99功能。

我寫了這種缺乏功能的位置:WITHer Recursive Queries?

在2016年4月,我去了一個演示文稿由MySQL開發人員組成的小組,他們說他們打算支持WITH語法中的下一個主要版本, MySQL 8.但是這可能會在幾年後就緒。