sql >> Databáze >  >> RDS >> Mysql

Jak seřadit tento dotaz MySQL

Myslím, že chcete:

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

Odůvodnění:ORDER BY klauzule by měla následovat po vše UNION ALL poddotazy - takže musí být mimo GROUP_CONCAT() , ve vnějším CONCAT() .

Upozorňujeme také, že nepotřebujete CONCAT() v rámci GROUP_CONCAT() :MySQL to již standardně dělá.




  1. Jak zamknout jeden řádek

  2. CHYBA PostgreSQL:zrušení příkazu kvůli konfliktu s obnovou

  3. SQL select where not in subdotaz nevrací žádné výsledky

  4. MySQL vybírá data s oddělovači