sql >> Database >  >> RDS >> Mysql

Hoe deze MySQL-query te sorteren?

Ik denk dat je wilt:

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

Rationale:de ORDER BY clausule moet na . gaan alle UNION ALL subquery's - het moet dus buiten de GROUP_CONCAT() zijn , in een buitenste CONCAT() .

Houd er ook rekening mee dat u CONCAT() . niet nodig heeft binnen GROUP_CONCAT() :MySQL doet dat standaard al.




  1. Kan een C#-programma een tekstbestand in het geheugen lezen en dat object vervolgens doorgeven aan een methode waarvoor een bestandsnaam nodig is?

  2. Enkel MySQL-veld met door komma's gescheiden waarden

  3. Introductie van nieuwe functie - Spotlight Cloud Database-groeirapport

  4. PHP verandert oude mysql_query in PDO