Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana Mengurutkan Query MySQL ini

Saya rasa Anda ingin:

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

Dasar Pemikiran:ORDER BY klausa harus setelah semua UNION ALL subqueries - jadi harus di luar GROUP_CONCAT() , di bagian luar CONCAT() .

Harap perhatikan juga bahwa Anda tidak memerlukan CONCAT() dalam GROUP_CONCAT() :MySQL sudah melakukannya secara default.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Banyak-ke-banyak di meja yang sama

  2. Cara mendapatkan semua kombinasi berbeda dari 2 kolom di MySQL

  3. Alternatif untuk tabel sementara MySQL di Oracle

  4. Setel variabel dari SELECT PHP

  5. Frekuensi penghitungan MySQL