私信  •  关注

Abhishek Gupta

Abhishek Gupta 最近创建的主题
Abhishek Gupta 最近回复了
9 年前
回复了 Abhishek Gupta 创建的主题 » 如何通过查询将mysql组中的日期列值转换为列名[重复]

对于动态轴,使用 GROUP_CONCAT 具有 CONCAT . 这个 GROUP_CONCAT 函数将组中的字符串连接为一个具有各种选项的字符串。

SET @sql = NULL;
SELECT
    GROUP_CONCAT(DISTINCT
    CONCAT(
      'SUM(CASE WHEN action = "',
      action,'"  AND ', 
           (CASE WHEN pagecount IS NOT NULL 
           THEN CONCAT("pagecount = ",pagecount) 
           ELSE pagecount IS NULL END),
      ' THEN 1 ELSE 0 end) AS ',
      action, IFNULL(pagecount,'')

    )
  )
INTO @sql
FROM
  t;

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

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

DEMO HERE