简介:
将数据从长格式重塑处理数据时,必须采用宽格式。 MySQL 提供的功能使您能够在不依赖外部脚本语言的情况下执行此操作。
创建宽格式表:
第一步是获取长格式中存在的所有不同键的列表table:
SELECT DISTINCT key FROM table;
使用获得的键创建具有所需宽格式结构的新表:
CREATE TABLE wide_table ( country VARCHAR(255), key1 VARCHAR(255), key2 VARCHAR(255), ..., keyN VARCHAR(255) );
填写表格值:
最后,使用交叉表查询将数据插入到宽格式表中:
INSERT INTO wide_table ( country, key1, key2, ..., keyN ) SELECT country, MAX(IF(key = 'key1', value, NULL)) AS key1, MAX(IF(key = 'key2', value, NULL)) AS key2, ..., MAX(IF(key = 'keyN', value, NULL)) AS keyN FROM table GROUP BY country;
示例:
考虑长格式输入表:
country | attrName | attrValue | key |
---|---|---|---|
US | President | Obama | 2 |
US | Currency | Dollar | 3 |
China | President | Hu | 4 |
China | Currency | Yuan | 5 |
使用上述步骤,我们可以将数据重塑为宽格式:
宽格式输出:
country | President | Currency |
---|---|---|
US | Obama | Dollar |
China | Hu | Yuan |
使用的好处SQL:
以上是如何在 MySQL 中有效地将数据从长格式重塑为宽格式?的详细内容。更多信息请关注PHP中文网其他相关文章!