問題点
ExploratoryデスクトップでMySQLからデータを取得する際、もしくはMySQLからデータを取得する処理を含むスケジュールの実行時に、以下のエラーが発生し、処理が失敗する。
Error : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'asc'
原因
MySQLのバージョンを8.0以降にアップグレードしたことにより、GROUP BY句内でASCやDESCを指定する書き方がサポートされなくなったためです。
旧バージョンのMySQLでは、以下のような非標準の構文が許容されていましたが、MySQL 8.0以降では構文エラーとなります。
GROUP BY sales_by_year ASC
これは、GROUP BYとORDER BYの役割を明確に分けるという、標準SQL仕様に沿った変更によるものです。
解決方法
GROUP BYとORDER BYを分けて記述するようにSQLを修正します。
修正前:
GROUP BY sales_by_year ASC
修正後:
GROUP BY sales_by_year
ORDER BY sales_by_year ASC
このように、
-
GROUP BYではグルーピングのみを行う - 並び順の指定は
ORDER BYで行う
という形に分けることで、MySQL 8.0以降でもエラーなく実行できるようになります。