【发布时间】:2013-06-10 19:19:22
【问题描述】:
我有两个“技能”表,第一个包含员工的技能,第二个包含公司的“技能”。
表员工技能
CREATE TABLE `employee_skills` (
`e_id` int(8) NOT NULL,
`skill` int(8) NOT NULL,
`points` enum('0','25','50','75','100') COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`u_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
表公司技能
CREATE TABLE `company_skills` (
`c_id` int(8) NOT NULL,
`skill` int(8) NOT NULL,
`points` enum('0','25','50','75','100') COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`u_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
因此,如果一家公司的技能 Windows 得分为 100 分,员工为 25 分,则匹配百分比为 25%。我正在使用以下查询来获取结果:
$result = $connection->prepare("select u_id, skill, points, COUNT(points) from employee_skills");
预期的结果应该与某些技能相匹配,并返回类似于以下的百分比:
技能 |匹配
- 窗户 | 25%
- Linux | ...%
- mac | ...%
【问题讨论】:
-
您可能在寻找
sum(points)而不是count -
如果员工技能大于公司技能,你想要100%还是125%、150%之类的东西
-
我希望百分比低于 100%
-
将点存储为 INT。如果 Minesh 的答案不是您想要的,请考虑按照相同的思路提供一个 sqlfiddle。