Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да сортирате тази MySQL заявка

Мисля, че искате:

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 вече прави това по подразбиране.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. непоследователна история на миграция при промяна на името на приложението django

  2. Код на грешка:1406. Данните са твърде дълги за колона - MySQL

  3. Как да напишете HQL JOIN заявка за избрани колони от множество таблици с помощта на конструктор в клаузата за избор

  4. Достъп до базите данни на mysql контейнер докер

  5. TIME_FORMAT() Примери – MySQL