在SQL查询中使用不相关表的计数

时间:2014-11-17 14:05:15

标签: mysql sql sql-server select

我有这个问题:

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))。

问题是使用 r与技能 student_skill 表格无关。

我应该如何更改查询以便使用当前的用户数?

由于

1 个答案:

答案 0 :(得分:1)

使用子查询

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