私はあなたが欲しいと思います:
SELECT CONCAT(
GROUP_CONCAT(
'SELECT ''', COLUMN_NAME,''' MyColumns, SUM(`', COLUMN_NAME,'`) Total FROM mydb.source_table'
SEPARATOR '\n UNION ALL \n'
),
'\nORDER BY Total DESC'
)
INTO @sql
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = 'mydb'
AND TABLE_NAME = 'source_table'
AND COLUMN_NAME NOT IN ('ID', 'Name');
理論的根拠:ORDER BY
句は後に配置する必要があります すべてUNION ALL
サブクエリ-したがって、GROUP_CONCAT()
の外部にある必要があります 、外側のCONCAT()
。
また、CONCAT()
は必要ないことに注意してください 内 GROUP_CONCAT()
:MySQLはデフォルトですでにそれを行っています。