MySQL 中的动态数据透视表
尝试生成具有动态列的数据透视表时,确保列名称是至关重要的正确处理。在所提供的情况下,user_id 是一个整数,如果格式不正确,可能会导致问题。
要解决此问题,需要将 user_id 值括在反引号 (`) 中以将它们指定为列名称,并防止它们被误解为数值。以下是修改后的查询:
SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'max(case when user_id = ''', user_id, ''' then score end) AS `', user_id, '`' ) ) INTO @sql FROM measure2; SET @sql = CONCAT('SELECT inspection_date, ', @sql, ' FROM measure2 GROUP BY inspection_date'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
此修改可确保将 user_id 值视为列名称,从而生成一个数据透视表,其中动态列代表每个唯一的 user_id 及其相应的分数。
以上是如何在 MySQL 中创建具有整数列名的动态数据透视表?的详细内容。更多信息请关注PHP中文网其他相关文章!