sql >> Databasteknik >  >> RDS >> Mysql

Hur man sorterar denna MySQL-fråga

Jag tror att du vill:

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');

Motiv:ORDER BY klausul bör gå efter alla UNION ALL subqueries - så det måste vara utanför GROUP_CONCAT() , i en yttre CONCAT() .

Observera också att du inte behöver CONCAT() inom GROUP_CONCAT() :MySQL gör det redan som standard.




  1. varför hämtar detta inte data från 7 dagar tillbaka?

  2. PostgreSQL – Hur man eliminerar upprepade värden

  3. Kan inte autentisera min Node js(v10.15.3)-app, npm mysql (v2.17.1) med MySQL(8.0.15) (ER_ACCESS_DENIED_ERROR)

  4. MySQL trigger ställ in värden för NY rad och uppdatera en annan i samma tabell