Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在具有相对ID的表中查找最大值_Mysql_Sql - Fatal编程技术网

Mysql 在具有相对ID的表中查找最大值

Mysql 在具有相对ID的表中查找最大值,mysql,sql,Mysql,Sql,假设有一个桌上人(ID,…,n_成功,n_失败) 像 我想进行一个查询,该查询将返回n_success/(n_success+n_fails)最大值的人的ID 示例在本例中,我希望得到的输出是: a3 0.9090909091 我试过: select ID,(N_succes/(n_success + n_fails)) 'rate' from person 通过这个查询,我得到了每个ID的相对成功率 select ID,MAX(N_succes/(n_success + n

假设有一个桌上人(ID,…,n_成功,n_失败)

我想进行一个查询,该查询将返回n_success/(n_success+n_fails)最大值的人的ID

示例在本例中,我希望得到的输出是:

  a3   0.9090909091
我试过:

  select ID,(N_succes/(n_success + n_fails)) 'rate' from person
通过这个查询,我得到了每个ID的相对成功率

  select ID,MAX(N_succes/(n_success + n_fails)) 'rate' from person
使用此查询,只有1行正确率,但ID不正确

我该怎么办?

MS SQL

SELECT TOP 1 ID, (`n_success` / (`n_success` + `n_fails`)) AS 'Rate' FROM persona
ORDER BY (n_success / (n_success + n_fails)) DESC
MySQL

MS SQL

MySQL


这取决于您的SQL方言,但在T-SQL中是:

SELECT TOP 1 p.ID, p.n_success / (p.n_success + p.n_fails) AS Rate
FROM persona p
ORDER BY p.n_success / (p.n_success + p.n_fails) DESC

您可以根据需要对其他方言进行更改(例如,对MySql和SQLite使用
LIMIT 1

这取决于您的SQL方言,但在T-SQL中可能是:

SELECT TOP 1 p.ID, p.n_success / (p.n_success + p.n_fails) AS Rate
FROM persona p
ORDER BY p.n_success / (p.n_success + p.n_fails) DESC

您可以根据需要对其他方言进行更改(例如,对MySql和SQLite使用
LIMIT 1

已经有很多答案了。在这里检查工作代码和上次编辑所需的输出

SELECT `ID`, `n_success` 'rate'
  FROM `persona`
 ORDER BY (`n_success` / (`n_success` + `n_fails`)) DESC
 LIMIT 1

已经有很多答案了。在这里检查工作代码和上次编辑所需的输出

SELECT `ID`, `n_success` 'rate'
  FROM `persona`
 ORDER BY (`n_success` / (`n_success` + `n_fails`)) DESC
 LIMIT 1

你用的是哪种RDBM?重新标记以获得更好的可见性和答案。您指定希望Id对应于最大值
n\u success/(n\u success+n\u fails)
和最大值
n\u success/(n\u success+n\u fails)
,但您的示例是错误的。您应该显示
a3,0.9091
。您是对的,我犯了一个错误,我将纠正。如果一些答案帮助您解决了问题,请检查它是否正确,以便将来的访问者可以参考。但在这种情况下,一切都是正确的;)你用的是哪种RDBM?重新标记以获得更好的可见性和答案。您指定希望Id对应于最大值
n\u success/(n\u success+n\u fails)
和最大值
n\u success/(n\u success+n\u fails)
,但您的示例是错误的。您应该显示
a3,0.9091
。您是对的,我犯了一个错误,我将纠正。如果一些答案帮助您解决了问题,请检查它是否正确,以便将来的访问者可以参考。但在这种情况下,一切都是正确的;)这里是标准SQL。不需要限制/顶部/订单等。返回一行-您想要的行。此处为标准SQL。不需要限制/顶部/订单等。返回一行-您想要的行。
select id, (n_success/(n_success + n_fails)) as rate from person
where (n_success/(n_success + n_fails)) = 
    (select max(n_success/(n_success + n_fails)) from person)