मुझे लगता है कि आप चाहते हैं:
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
खंड बाद go जाना चाहिए सभी UNION ALL
सबक्वेरी - इसलिए इसे GROUP_CONCAT()
. से बाहर होना चाहिए , एक बाहरी CONCAT()
. में ।
कृपया यह भी ध्यान दें कि आपको CONCAT()
की आवश्यकता नहीं है भीतर GROUP_CONCAT()
:MySQL डिफ़ॉल्ट रूप से पहले से ही ऐसा करता है।