【问题标题】:Use count of unrelated table in SQL query在 SQL 查询中使用不相关表的计数
【发布时间】:2015-01-14 11:15:28
【问题描述】:

我有这个问题:

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

这个查询返回的正是我想要的,但我需要用表 user 中的行数替换常量 82(例如)(类似于 COUNT(user.name))。

问题是 user 与 skillstudent_skill 表没有任何关系。

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

谢谢

【问题讨论】:

  • 是 MySQL 还是 SQL-Server?
  • 为什么不使用 Select Count(*) from Users?

标签: mysql sql sql-server select


【解决方案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

【讨论】:

    猜你喜欢
    • 2019-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多