我有这个查询:
select skill.name, IFNULL(Round(((SUM(ROUND((student_skills.value/skill.value)*100,0)))/82),0),0) as successRate from skill left JOIN student_skills on skill.id = student_skills.skill_id group by skill.name
此查询返回的正是我想要的内容,但我需要将常量 82 (仅作为示例)替换为表 user 中的行数(类似于 COUNT(user.name))。
问题是 user 与 skill 或 student_skill 表没有任何关系。
我应该如何更改我的查询,以便它使用当前的用户数?
谢谢
最佳答案
使用子查询
select skill.name,
IFNULL(Round(((SUM(ROUND((student_skills.value/skill.value)*100,0)))/(select COUNT(*) from user)),0),0) as successRate
from skill
left JOIN student_skills on skill.id = student_skills.skill_id
group by skill.name
关于mysql - SQL查询中不相关表的使用计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26974455/