mysql - 自动数据透视表创建的限制

标签 mysql

我有以下查询来创建一个创建数据透视表的查询。 如果我执行SELECT * FROM @sql,我会得到存储在@sql中的文本。 (抱歉,冗余...)

问题是,尽管我在 Solar.sensors 中有接近 200 个条目,但在 @sql 中只显示了 16 个条目。

可以连接到变量中的条目数量(在本例中为 @sql)是否有限制?

SELECT
  GROUP_CONCAT(
    CONCAT(
      'MAX(CASE WHEN sensor_id = ', sensor_id,
      ' THEN power ELSE 0 END) AS "',sensor_id,
      '"\n'
    )
  ) INTO @sql 
FROM solar.sensors;

SET @sql = CONCAT('SELECT date, ', @sql, ' 
                  FROM solar.agregated 
                   GROUP BY date');

@sql的内容是:

SELECT date, MAX(CASE WHEN sensor_id = 20 THEN power ELSE 0 END) AS "20"
,MAX(CASE WHEN sensor_id = 21 THEN power ELSE 0 END) AS "21"
,MAX(CASE WHEN sensor_id = 81 THEN power ELSE 0 END) AS "81"
,MAX(CASE WHEN sensor_id = 82 THEN power ELSE 0 END) AS "82"
,MAX(CASE WHEN sensor_id = 150 THEN power ELSE 0 END) AS "150"
,MAX(CASE WHEN sensor_id = 151 THEN power ELSE 0 END) AS "151"
,MAX(CASE WHEN sensor_id = 152 THEN power ELSE 0 END) AS "152"
,MAX(CASE WHEN sensor_id = 154 THEN power ELSE 0 END) AS "154"
,MAX(CASE WHEN sensor_id = 159 THEN power ELSE 0 END) AS "159"
,MAX(CASE WHEN sensor_id = 160 THEN power ELSE 0 END) AS "160"
,MAX(CASE WHEN sensor_id = 164 THEN power ELSE 0 END) AS "164"
,MAX(CASE WHEN sensor_id = 165 THEN power ELSE 0 END) AS "165"
,MAX(CASE WHEN sensor_id = 166 THEN power ELSE 0 END) AS "166"
,MAX(CASE WHEN sensor_id = 167 THEN power ELSE 0 END) AS "167"
,MAX(CASE WHEN sensor_id = 168 THEN power ELSE 0 END) AS "168"
,MAX(CASE WHEN sensor_id = 169 THEN power ELSE 0 END) AS "169"
                  FROM solar.agregated /*This is a view*/
                   GROUP BY date

最佳答案

问题的答案在这里: group_concat was cut when running a query on table

基本上可以连接的字符数是有限制的。 可以使用以下命令修改此类限制:

SET group_concat_max_len=150000000; /*or a very high number*/

关于mysql - 自动数据透视表创建的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28540251/

相关文章:

mysql - 获取最近一个月的记录

php - 如何显示有多少访问者访问我的网站(按日期排序)

php - PDO异常 : SQLSTATE[28000] [1045] Access denied for user

java - JDBC 将 Timestamp 转换为 NULL(zeroDateTimeBehavior 问题)

php - #1062 - key '31' 的重复条目 'PRIMARY'

mysql - 将 MySQL 查询合并到表中

mysql - 转换 sqlite 数据库不会使用 phpmyadmin 导入

mysql - Spring JPA 查询涉及 COUNT() 和 LOWER()

mysql - MySQL 服务器是否允许使用 Python 脚本?

php - 为什么 PHP 将 windows-1252 文本保存到 utf8mb4 数据库?