Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak posortować to zapytanie MySQL

Myślę, że chcesz:

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

Uzasadnienie:ORDER BY klauzula powinna następować po wszystkie UNION ALL podzapytania - więc musi być poza GROUP_CONCAT() , w zewnętrznej CONCAT() .

Pamiętaj również, że nie potrzebujesz CONCAT() w GROUP_CONCAT() :MySQL robi to już domyślnie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ustaw wartość AUTO_INCREMENT poprzez zmienną w MySql

  2. Nazwa schematu MySQL z myślnikiem nie pozwala mi na wykonanie zapytania wiersza poleceń

  3. Autoinkrementacja identyfikatora tabeli przy użyciu kombinacji ciągów w bazie danych automatycznie

  4. Niezdefiniowany obraz indeksu w php

  5. Jak uruchomić skrypt SQL w MySQL?