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

एकाधिक मायने रखता है और एक समूह द्वारा

SELECT ID, Name,
        SUM(CASE WHEN `Page Visited` = 'Page A' THEN 1 ELSE 0 END) `Page A Visit`,
        SUM(CASE WHEN `Page Visited` = 'Page B' THEN 1 ELSE 0 END) `Page B Visit`,
        SUM(CASE WHEN `Page Visited` = 'Page C' THEN 1 ELSE 0 END) `Page C Visit`
FROM tableName
GROUP BY ID, Name

यदि आपके पास page . की अज्ञात संख्या है , आप PreparedStatement . भी कर सकते हैं

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'SUM(CASE WHEN `Page Visited` =''',
      `Page Visited`,
      ''' then 1 ELSE 0 end) AS ',
      CONCAT('`',`Page Visited`, ' Visits`')
    )
  ) INTO @sql
FROM TableName;

SET @sql = CONCAT('SELECT ID, Name, ', @sql, ' 
                   FROM tableName
                   GROUP BY ID, Name');

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



  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. SQL डुप्लिकेट पंक्तियों को मर्ज करता है और अलग-अलग मानों में शामिल होता है

  4. स्थानीयहोस्ट में दूरस्थ डेटाबेस आयात करें

  5. एसक्यूएल गैर-नल डेटा वाले क्षेत्रों की सूची वापस करने के लिए