【发布时间】:2019-04-17 13:32:22
【问题描述】:
我们尝试用生成的列创建一个表。
请查看这些查询以了解我们当前的表结构:
嗜睡:
CREATE TABLE `Heepsy` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(200) COLLATE utf8mb4_bin DEFAULT NULL,
`photo_url` varchar(300) COLLATE utf8mb4_bin DEFAULT NULL,
`followers` int(10) DEFAULT NULL,
`engagement` decimal(5,2) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=51731 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
表 HypeAuditor:
CREATE TABLE `HypeAuditor` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`engaement` decimal(5,2) DEFAULT NULL,
`Country` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`Country_percentage` int(3) DEFAULT NULL,
`Interest1` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`Interest1_percentage` int(3) DEFAULT NULL,
`Interest2` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`Interest2_percentage` int(3) DEFAULT NULL,
`Interest3` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`Interest3_percentage` int(3) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=27123 DEFAULT CHARSET=utf8;
Table NinjaOutreach:
CREATE TABLE `NinjaOutreach` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(200) COLLATE utf8mb4_bin DEFAULT NULL,
`fullname` varchar(200) COLLATE utf8mb4_bin DEFAULT NULL,
`photo_url` varchar(300) CHARACTER SET utf8 DEFAULT NULL,
`followers` int(10) DEFAULT NULL,
`engagement` decimal(5,2) DEFAULT NULL,
`city` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`state` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`country` varchar(100) CHARACTER SET utf8 DEFAULT NULL,
`category_1` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
`category_2` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
`category_3` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
`category_4` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
`category_5` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
`category_6` varchar(200) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=296788 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
餐桌组合:
CREATE TABLE `Kombiniert` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`fullname` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`followers_heepsy` int(11) DEFAULT NULL,
`followers_ninjaoutreach` int(11) DEFAULT NULL,
`followers_average` int(11) DEFAULT NULL,
`engagement_heepsy` decimal(5,4) DEFAULT NULL,
`engagement_ninjaoutreach` decimal(5,4) DEFAULT NULL,
`engagement_hypeauditor` decimal(5,4) DEFAULT NULL,
`engagement_average` decimal(5,4) DEFAULT NULL,
`city` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`state` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`country` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`category1` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`category2` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`category3` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`category4` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`category5` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`category6` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`follower_interest1` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`follower_interest1_share` decimal(5,4) DEFAULT NULL,
`follower_interest2` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`follower_interest2_share` decimal(5,4) DEFAULT NULL,
`follower_interest3` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`follower_interest3_share` decimal(5,4) DEFAULT NULL,
`follower_country` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
`follower_country_share` decimal(5,4) DEFAULT NULL,
`follower_country_total` int(11) DEFAULT NULL,
`follower_country_engaged` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 我们需要如何更新 SQL 查询来创建表
Kombiniert,并生成以下列:
followers_average: “followers_heepsy”和“followers_ninjaoutreach”列的平均值,但前提是两者都大于 0。如果只有一列大于 0,则使用该列的值。
参与度_平均: “engagement_heepsy”、“engagement_ninjaoutreach”和“engagement_hypeauditor”列的平均值,但前提是所有列都大于 0。如果只有两列大于 0,则使用这 2 列的平均值。如果只有一列大于 0,则使用该列的值。
follower_country_total: follower_average * follower_country_share
follower_country_engaged: Followers_country_total * 参与度_平均
所有生成的列都应该是 STORED 而不是虚拟的?
-
我们需要如何创建一个
INSERT查询,它将执行以下操作:对于每个
usernameFROMHypeAuditor在表Kombiniert中创建一个包含以下数据的行:https://docs.google.com/spreadsheets/d/1qU0WaExjg8cCsA3cdDvKf3UqdLxqXKw_8QnDRLvJwMA/edit?usp=sharing?
【问题讨论】:
-
欢迎来到 Stack Overflow。如果您可以将表格结构和数据直接作为文本而不是超链接包含在问题中,这将对您的问题有很大帮助。
-
也-我认为您的意思是计算列而不是生成的列。列本身似乎是固定的,但您想插入计算的聚合 - 对吗?
-
您的表创建引用了我认为是 MySQL 的 InnoDB - 对吗?
-
嗨@iainc 感谢您的回答。是的,它是 MySQL。