gpt4 book ai didi

mysql - 如何将mysql中的静态数据透视表转换为动态数据透视表?

转载 作者:行者123 更新时间:2023-11-29 17:56:30 25 4
gpt4 key购买 nike

我正在开发一个项目,我必须在 MySQL 中创建一个数据透视表。

SELECT date,
MAX(IF(cropname = 'tomato', quantity, NULL)) AS Tomatoes,
MAX(IF(Cropname = 'apple', quantity, NULL)) AS Apples,
MAX(IF(cropname = 'banana', quantity, NULL)) AS Bananas,
MAX(IF(Cropname = 'bengal gram', quantity, NULL)) AS Bengal_Gram,
MAX(IF(Cropname = 'Spinach', quantity, NULL)) AS Spinach,
MAX(IF(Cropname = 'Beet Root', quantity, NULL)) AS Beet_Root
From tempcrop
Group by date;

目前我正在使用此代码来制作数据透视表。我应该如何更改此代码以使其成为动态数据透视表,以便如果我向主表添加新记录,则会在此处自动复制相同的记录。

我已经在 stackoverflow 以及其他网站上看到了其他问题。它不起作用。我已经尝试过这段代码

SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(IF(Cropname = ''',
cropname,
''', quantity, NULL)) AS ',
cropname
)
) INTO @sql
FROM tempcrop;
SET @sql = CONCAT('SELECT date, ', @sql, ' FROM tempcrop GROUP BY date');

最佳答案

SET @sql = NULL;
SET @@group_concat_max_len = 5000;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(IF(cropname = ''',
cropname,
''', quantity, NULL)) AS ''',
cropname,''''
)
) INTO @sql
FROM
tempcrop;

SET @sql = CONCAT('SELECT date, ', @sql, ' FROM tempcrop');

PREPARE stmt FROM @sql;
EXECUTE stmt;

这段代码完美运行。

关于mysql - 如何将mysql中的静态数据透视表转换为动态数据透视表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48765482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com