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

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

问题是 user 与 skillstudent_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/

相关文章:

mysql - 价格是 float 还是小数?

MySql 按日期过滤复杂查询

mysql - 选择 ('score' +'score_bonus' )>0 的行,但其中一个值可能为 NULL

c# - 如何在 Mysql Connector/NET 中省略对 SqlNullValueException 的检查

c# - Asp.net C# sql server 读取 block 中的二进制sql字段数据

C# 定时器填充数据库

c# - 在 LINQ 查询期间获取行中的最小值

sql - 限制 MySQL 中的 SQL 查询结果

mysql - 获取所有非值行而不使用子查询

SQL 字符串函数