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 खंड बाद go जाना चाहिए सभी 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. परीक्षण के लिए अपने MySQL उदाहरणों को कैसे विफल या क्रैश करें?

  2. पिछली पंक्ति के साथ MySQL डेटाटाइम तुलना

  3. MYSQL में डायनामिक कॉलम नाम

  4. PostgreSQL, MS SQL सर्वर और MySQL में MOD () का उपयोग करके शेष राशि कैसे प्राप्त करें?

  5. RMySQL dbWriteTable फ़ील्ड के साथ। प्रकार