Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

mysql पिवट/क्रॉसस्टैब क्वेरी

जबकि @ जॉन का स्थिर उत्तर बहुत अच्छा काम करता है, यदि आपके पास अज्ञात संख्या में कॉलम हैं जिन्हें आप बदलना चाहते हैं, तो मैं परिणाम प्राप्त करने के लिए तैयार कथन का उपयोग करने पर विचार करूंगा:

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'GROUP_CONCAT((CASE node_id when ',
      node_id,
      ' then entered_value else NULL END)) AS user_input',
      node_id
    )
  ) INTO @sql
FROM trn_user_log;


SET @sql = CONCAT('SELECT app_id, transaction_id, mobile_no, ', @sql, ' 
                  FROM trn_user_log 
                  GROUP BY app_id, transaction_id, mobile_no');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

देखें SQL Fiddle with Demo

जहाँ तक आपका दूसरा सवाल है, कृपया स्पष्ट करें कि आप क्या करने की कोशिश कर रहे हैं यह स्पष्ट नहीं है।



  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 कॉन्फ़िगरेशन चर सेट करना - MySQL 5.7 बनाम MySQL 8.0

  2. MySQL ड्रॉप कॉलम

  3. तालिका बनाने में 1064 त्रुटि ... TYPE=MYISAM

  4. उपयोगकर्ता इनपुट पर निर्भर लंबी क्वेरी के लिए मैं PHP में MySQL त्रुटि कैसे प्रदर्शित करूं?

  5. MySQL उच्च उपलब्धता फ्रेमवर्क समझाया - भाग I:परिचय