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

गतिशील धुरी MySQL

SELECT id,SUM(CASE WHEN Item='Chocolate' THEN Purchased END) as Chocolate_Purchased,
SUM(CASE WHEN Item='Biscuit' THEN Purchased END) as Biscuit_Purchased,
SUM(CASE WHEN Item='Jelly' THEN Purchased END) Jelly_Purchased,
SUM(CASE WHEN Item='Mile' THEN Purchased END) as Mile_Purchased 
GROUP BY id

यहाँ गतिशील संस्करण है

SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
    CONCAT(
      'SUM(IF(t.item = ''',
      item,
      ''', t.purchased, 0)) AS ',
      item
    )
   )INTO @sql
FROM t;

SET @sql = CONCAT('SELECT id,
                     ', @sql, ' 
                   FROM t               
                   GROUP BY id');

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

FIDDLE




  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. शर्त के आधार पर किसी अन्य तालिका के कॉलम के साथ कॉलम मान अपडेट करें

  4. वीपीएन विकल्प के रूप में एसएसएच टनलिंग का उपयोग करना

  5. MySQL - रूसी वर्ण गलत तरीके से प्रदर्शित होते हैं